2013-06-27 103 views
0

我使用的EclipseLink和H2和我已經設置了策略,的EclipseLink和H2策略= GenerationType.AUTO

strategy = GenerationType.AUTO 

因爲IDENTITY戰略沒有工作(它試圖插入一個空ID和失敗的) 。

現在我不知道AUTO類型使用了什麼,但它似乎工作,但給定的ID有點隨機,而我希望它們從1開始並在可能的情況下以1爲步長增加。

JPA似乎插入1,51,52,101,151這是有點太隨機,我認爲這是浪費數字。 即使這不是浪費(例如因爲JPA也使用缺口之間的缺失數字),我希望ID增加而不是隨機!

有關如何設置它的任何建議?

回答

0

JPA中的默認預分配大小爲50,您可以將allocationSize設置爲將此增量更改爲1,儘管我不會推薦此選項,因爲這會使您的性能變得更糟。

你仍然不應該得到像這樣的洞。你是否爲每個請求創建一個新的EntityManagerFactory? (不要這樣做),還是你有多個併發請求?你在使用JTA嗎?

IDENTITY與H2一起工作,確保您使用正確的IDENTITY類型創建了您的表格。 AUTO默認爲TABLE排序。一般來說,我不建議使用IDENTITY,因爲它不支持預分配。