0

テーブルジェネレータで生成された主キーを持つテーブルがあります。

@TableGenerator(name = "resourceIdGenerator"、table = "SEQUENCE"、pkColumnName = "NAME"、pkColumnValue = "resource_type_id"、valueColumnName = "NEXTID"、allocationSize = 1)、正常に動作します。

ただし、新しいレコードを挿入することで同じテーブルを時々変更する別のシステム(Java以外)があります。私のこのテーブルジェネレータの値を、JPAを使用していない別のシステムから更新することは可能ですか?または、JPAはこれを独自に維持し、tablegeneratorテーブルを管理するのはJPAだけですか?

4

1 に答える 1

1

JPAは、魔法のようにテーブルを使用したり、他の人がテーブルを使用することを禁止したりすることはできません。他のシステムでHibernateがIDを生成するために使用したものと同じ戦略を使用する場合、それが機能しない理由はありません。

割り当てサイズは1なので、おそらくselect for update、シーケンステーブルの適切な行である新しいトランザクションを開始し、その値を取得して1ずつインクリメントする必要があります。

于 2012-09-27T14:14:51.030 に答える