我想使用SequenceGenerator並從序列生成器獲取下一個值。我想避免去數據庫之旅,並依靠sequencegenerator給我一個獨特的價值。此外,我正在使用該值在顯示字段中顯示唯一標識符,而無需保留該對象。從SequenceGenerator獲取下一個值
回答
如果我們忽略了JPA value generation strategies,SEQUENCE strategy是最適合您的情況。
不同於AUTO和IDENTITY,序列策略一旦一個新的實體對象持久保存生成的自動 值(即之前 提交)。當前面需要主鍵值 時,這可能很有用。若要將數據庫服務器的往返次數爲減至最小,則ID爲 分組。
每個分配中的ID數量由allocationSize屬性指定。
如果您以前需要序列中生成的ID,只需堅持對象並檢索其ID即可。稍後,您可以將其從持久性上下文中刪除。
我不知道爲什麼你需要身份證才能堅持。我認爲從序列發生器獲得價值沒有意義。我不建議你搞亂生成的值,我不建議你爲ID使用手動值。使用開箱即用的功能。
要獲得唯一的一個序列值,你可以使用以下命令:
Query q = em.createNativeQuery("select nextval('schema.sequence_name')");
return (Long)q.getSingleResult();
這不適用於Oracle。 – johnktims 2014-07-03 18:17:48
可能不會。但是對於PostgreSQL,它的工作原理 – romandragan 2014-09-09 07:18:43
我添加了一個我測試過的Oracle變體。 – 2015-08-03 14:19:06
它工作在甲骨文:
Query q = em.createNativeQuery("SELECT nombreSecuencia.NEXTVAL FROM DUAL");
return (java.math.BigDecimal)q.getSingleResult();
- 1. 從spring上下文獲取Hibernate SequenceGenerator的方法?
- 2. 從輸入中獲取下一個值
- 3. 獲取一個或下一個值
- 4. 從mysqli獲取一個值
- 5. 從Observable獲取一個值
- 6. SSRS 2005獲取下一個記錄值
- 7. 的Postgres 9.1 - 獲取下一個值
- 8. 獲取下一個輸入的值
- 9. 爲下一個活動獲取空值
- 10. SQL - 獲取isIdentity列的下一個值
- 11. 使用SortedDictionary - 獲取下一個值
- 12. 獲取隊列中的下一個值
- 13. 如何創建一個用於生成唯一值的新SequenceGenerator?
- 14. 從istream獲取下一個浮點數?
- 15. 從EditText獲取下一個事件
- 16. PHP從MySQL獲取下一個結果
- 17. jquery從下一個td中提取值
- 18. c#從下一個節點提取值
- 19. 如何從內部連接中獲取下一個值SQL
- 20. ASP.net listview下拉列表項獲取從另一個表的值
- 21. 從春季休眠序列中獲取下一個值
- 22. 從下拉列表中獲取一個值mvc 4
- 23. 從SQL表中獲取下一個匹配的字符串值
- 24. 使用查詢從當前ID獲取下一個值
- 25. 從下拉列表中獲取第一個索引值
- 26. 從SQL Server中的XML,獲取下一個同級價值
- 27. 如何從一個下拉在PHP中獲取值和ID?
- 28. 從另一個xib獲取UITextField值
- 29. Javascript從另一個頁面獲取值
- 30. 從同一表(hirarical)獲取多個值
我們能看到你的代碼? – SomeKittens 2012-07-13 14:53:37