我有一個名爲PRODUCT_ID_SEQ
的序列的遺留Oracle數據庫。如何使用現有的Oracle序列在hibernate中生成id?
這裏是Product
類的映射,我需要生成正確的ID:
public class Product {
@GeneratedValue(strategy = GenerationType.SEQUENCE,
generator = "retailerRaw_seq")
@SequenceGenerator(name = "retailerRaw_seq",
sequenceName = "PRODUCT_ID_SEQ")
private Long id;
...
}
但是看起來像與50的間隔生成的ID,如1000,1050,1100等,這對應於默認值allocationSize
property = 50.所以這意味着Hibernate實際上並沒有使用已經在db中定義的序列。
如何讓Hibernate使用序列?
重複的問題:見http://stackoverflow.com/questions/1729723/hibernate -does-not-generate-identifier-when-using-oracle-sequence/1729753#1729753 – 2010-01-28 16:03:20
不,它不是重複的。見下面的答案 – Tristan 2011-08-14 08:41:47