2015-07-10 25 views
1

我希望爲成員編號提供唯一的列。用Hibernate/JPA做這件事的最好方法是什麼?休眠JPA:具有5位整數的唯一列

生成可用作成員編號的唯一整數組合的最佳方式是什麼?

EDIT 
@Generated(GenerationTime.INSERT) 
@Column(insertable = false) 
private int membernumber; 

回答

0

我研究的話題一下,發現JPA規範允許@GeneratedValue非ID列,但Hibernate不。

JPA or Hibernate to generate a (non primary key) column value, not starting from 1

你可以在你的數據庫的服務保存實體之前使用INSERT觸發器或產生它的手。那個鏈接對此有一個很好的討論。

希望它有幫助。

+0

感謝您的回覆!問題的哪一部分不清楚?也許我可以澄清,如果有必要,你可以優化你的答案。基本上,我有一張儲存會員的桌子。該表具有主鍵。不過,我也想爲每個成員設定一個唯一的成員編號。有沒有一種方法來實現一個計數器或者什麼,從10000開始,然後只是遞增? – user3629892

+0

我想我知道了,我以爲你想爲每個註冊表提供一個獨特的隨機值。在這種情況下,您可以在列中使用@Generated,並將數據庫更改爲從10000開始自動遞增該值(Sequence for Postgres,auto_increment for MySQL)。這裏有一個很好的例子:http://www.concretepage.com/hibernate/example-generated-hibernate –

+0

你好!我無法讓它工作。查看我的編輯:我收到列沒有默認值的錯誤。 – user3629892