PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Używanie UUID z EclipseLink i PostgreSQL

Miałem ten sam problem z EclipseLink JPA + Postgresql + UUID jako kluczem podstawowym.

Aby go rozwiązać, połączyłem kody z Github i poniższy link:https://forums.oracle.com/forums/thread.jspa?messageID=4584157

Poniższy kod dla UUIDConverter działał dla mnie, chociaż kod z pewnością nie jest najlepszy.

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. Sekwencja klucza podstawowego PostgreSQL utracona po migracji za pomocą AWS DMS

  2. Wyświetlanie i przełączanie baz danych w PostgreSQL

  3. błąd w ustawieniu java String[] do przygotowanej instrukcji postgres

  4. jak odwołać się do zmiennej schematu w plpgsql

  5. Nie znaleziono klasy podczas ładowania JDBC org.postgresql.Driver