2012-02-02 62 views
0

我需要映射一個遺留數據庫表,它具有一些奇怪的主鍵,這些主鍵是由與一個靜態字符串連接的序列生成的。@Id from @GeneratedValue(strategy = GenerationType.SEQUENCE)與字符串連接

Oracle序列根據規範生成ID。但所討論的表的ID列是該序列號和字符串的串聯AA。在持久化新對象時,是否可以使用JPA以相同的格式創建ID值?

Oracle的序列產生的增量數,123,`4 ...等等。

的表的ID必須AA_1AA_2AA_3AA_4 ...等等。

我明白如何通過註釋類中的id字段來創建序列中的ID,並且我假設我需要編寫自己的定製ID生成類,該類生成序列並連接AA字符串。

回答

2

您將需要通過擴展IdentifierGenerator接口來創建自己的自定義標識符生成器。

然後,這可以使用Oracle序列來獲取您的值,然後執行連接。

然後,您可以在映射中指定您的生成器類。

+1

非常感謝Alex,我做了略微不同的事情,並將IdentifierGenerator的具體SequenceGenerator實現封裝在PersistentIdentifierGenerator的抽象impl中。然後我只是擴展一個特定的前綴。然後我註釋我的 – John 2012-02-03 11:41:16