5

現在 Hibernate と MySQL を実行している JPA 2 エンティティで、ネイティブでポータブルな ID を生成したいと考えています。

@GeneratedValue(strategy=AUTO) を使用する場合、休止状態は MySQL の「hibernate_sequence」テーブルにデフォルト設定されます。IDENTITY が必要です。

@GeneratedValue(strategy=IDENTITY) を使用して解決すると、Oracle/Postgres の移植性が失われます

@GeneratedValue strategy=AUTO の場合、MySQL のデフォルトとして IDENTITY を使用するように Hibernate を設定するにはどうすればよいですか?

4

2 に答える 2

1

独自のカスタムジェネレーターを作成し、DBで関数/ストアドプロシージャを呼び出して、必要なIDを作成することができます。ここ
を見てください、これは私が今書いたことを行う方法についての良い例のあるブログです。

于 2012-06-27T03:42:31.020 に答える
1

Hibernate でコードを変更しない限り、それに影響を与えることはできません。1 つの方法は、ID 要件が異なるデータベースごとに異なるマッピング セット (注釈の代わりに xml) を使用することです。もちろん、やるべきことはたくさんあります。

データベース ベンダーから独立して機能する真に移植可能な唯一の方法は、TABLE 戦略で ID を生成することです。

于 2012-06-27T06:14:15.833 に答える