PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Memetakan tipe serial PostgreSQL dengan anotasi Hibernate

Pemetaan berikut akan berfungsi dengan baik:

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

Namun, perhatikan bahwa nilai yang dihasilkan untuk objek yang baru disimpan tidak tersedia hingga sesi dihapus.

EDIT: Perhatikan bahwa pemetaan ini tidak mempengaruhi tidak membuat Hibernate membuat kolom jenis serial selama pembuatan skema, karena Hibernate tidak tahu apa-apa tentang sifat pembuatan nilai di sisi basis data. Oleh karena itu, jika Anda ingin Hibernate membuat kolom dengan tipe yang tepat, Anda perlu menentukannya secara eksplisit:

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

Dan pada versi Hibernate terbaru (4.3), Anda dapat menggunakan ini:

@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. Jalankan kueri PostgreSQL dari baris perintah

  2. ST_HexagonGrid vektor geom untuk menemukan semua titik

  3. PGError:ERROR:izin ditolak untuk relasi (saat menggunakan Heroku)

  4. Bagaimana cara mengubah kunci utama dari integer ke serial?

  5. Psql daftar semua tabel