1. 程式人生 > >hibernate中使用oracle的序列作為主鍵問題

hibernate中使用oracle的序列作為主鍵問題

    @Id
    @SequenceGenerator(name="gen",sequenceName="SEQ_ORDER_MAIN" )
    @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="gen")
    @Column(name = "ID", unique = true, nullable = false)

按照上面的主鍵設定,發現生成的資料中的主鍵值並沒有跟隨資料庫中的序列,二者並不一致,後發現hibernate預設會將或得到的序列值進行處理,此時如果需要保持和庫裡一致,需要主動設定多一個引數,allocationSize=1

    @Id
    @SequenceGenerator(name="gen",sequenceName="SEQ_ORDER_MAIN" ,allocationSize=1)
    @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="gen")
    @Column(name = "ID", unique = true, nullable = false)

OK,天下太平:)