PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sử dụng UUID với EclipseLink và PostgreSQL

Tôi gặp sự cố tương tự với EclipseLink JPA + Postgresql + UUID làm khóa chính.

Để giải quyết vấn đề này, tôi đã hợp nhất các mã từ Github và liên kết bên dưới: https://forums.oracle.com/forums/thread.jspa?messageID=4584157

Mã dưới đây cho UUIDConverter phù hợp với tôi, mặc dù mã chắc chắn không phải là tốt nhất.

public void initialize(DatabaseMapping ARGMapping, Session ARGSession)
{
    final DatabaseField Field;
    if (ARGMapping instanceof DirectCollectionMapping)
    {
        Field = ((DirectCollectionMapping) ARGMapping).getDirectField();
    }
    else
    {
        Field = ARGMapping.getField();
    }
    Field.setSqlType(Types.OTHER);
    Field.setTypeName("uuid");
    Field.setColumnDefinition("UUID");

    for (DatabaseMapping m : ARGMapping.getDescriptor().getMappings())
    {
        assert OneToOneMapping.class.isAssignableFrom(ManyToOneMapping.class);
        if (m instanceof OneToOneMapping)
        {
            for (DatabaseField field : ((OneToOneMapping) m).getForeignKeyFields())
            {
                field.setSqlType(Types.OTHER);
                field.setColumnDefinition("UUID");
                field.setTypeName("uuid");
            }
        }
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di chuyển Rails + Postgres - tại sao tôi nhận được lỗi PG ::UndefinedFunction:ERROR:function gen_random_uuid () không tồn tại?

  2. Tìm tỷ lệ của mỗi X gồm Y trong PostgreSQL?

  3. Bảng lịch sử chứng khoán trung bình

  4. PHPpgAdmin:Cách xóa các hàng mà không cần sử dụng SQL

  5. bạn có thể sử dụng thư viện trong PL / Perl