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;