簡體   English   中英

JPA id生成通用策略

[英]JPA id generation generic strategy

我有一個正確使用JPA-Hibernate與MySQL的應用程序。 在這種情況下,我正在使用實體中的id生成一個自動策略。 另一方面,我有其他使用Oracle的應用程序,我正在使用序列策略。 關鍵是我想知道是否可以為Oracle / MySQL / Sql Server使用“通用”策略,並使我的應用程序更具可移植性。

謝謝。

便攜式解決方案的簡便方法是使用TableGenerator 值在數據庫表中進行管理,並使用SQL查詢進行檢索和修改,因此不使用任何數據庫供應商特定的結構。

不依賴於特定數據庫功能的通用策略需要額外的表來生成ID。 這樣的策略: hiloenhanced-table 您還可以使用基於UUID生成的策略,例如uuid.hexuuiduuid2 其他策略將使用不同的DB特定功能,因此行為可能不同。 例如, native在MySQL和Postgres中的工作方式不同,在MySQL(生成器)中,當您保存對象時,您可以正確插入,在Postgres(序列)中,您只能在常規刷新時插入。 您可能需要查看DefaultIdentifierGeneratorFactory來源以查看所有可能的策略並探索其算法和文檔。

請注意,通常使用同一個數據庫制作2個或更多個異構應用程序是個壞主意,特別是如果它們都在寫入數據庫。 您的數據庫將很難維護和重構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM