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

Mapowanie typu szeregowego PostgreSQL z adnotacjami Hibernate

Poniższe mapowanie powinno działać poprawnie:

@Column(name = "orderId")
@Generated(GenerationTime.INSERT)
private Integer orderId;

Należy jednak zauważyć, że wygenerowana wartość dla świeżo zeskładowanych obiektów nie jest dostępna, dopóki sesja nie zostanie opróżniona.

EDYTUJ: Zauważ, że to mapowanie nie ma wpływu na to, że Hibernate nie powoduje utworzenia kolumny typu serial podczas generowania schematu, ponieważ Hibernate nie wie nic o naturze generowania wartości po stronie bazy danych. Dlatego jeśli chcesz, aby Hibernate utworzył kolumnę o odpowiednim typie, musisz to wyraźnie określić:

@Column(name = "orderId", columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private Integer orderId;

W najnowszej wersji Hibernate (4.3) możesz użyć tego:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long orderId;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać nową kolumnę w tabeli po 2 lub 3 kolumnie w tabeli za pomocą postgresa?

  2. Indeksowanie bazy danych w PostgreSQL

  3. Jak ustawić limit czasu instrukcji dla wykonania zapytania

  4. Flask-SQLAlchemy Small Case Index - pomijanie funkcji, nieobsługiwane przez odbicie SQLAlchemy

  5. Jak wyświetlić bazy danych i tabele w PostgreSQL