0

<generator class="identity" />テーブル内の生成IDが最後に挿入された+1ではなく、たとえば最後の挿入IDが5であり、レコードを保存するときに新しいIDがたとえば7であるため、ID値6がスキップされる理由についてアドバイスを求めたいのですが

(mySqlデータベースのこの「identity」クラスの利点のため、クラスをインクリメントするのではなく、 identityを使用する必要があります)

私の場合、主キーと外部キーに同じID値が必要なので、等しくなければなりませんが、この場合、主キー7を取得し、外部キーも生成されますが、最後のIDでインクリメントされません。

両方のクラスにHibernateマッピングがあります。<generator class="identity" /> これを使用して、「ID」によって新しいレコードを持つ両方の増分IDを取得するために使用する必要がありますか?

4

1 に答える 1

2

次のような「AUTO_INCREMENT」を使用して、主キーを使用してテーブルを作成する必要があります。

CREATE TABLE person ( id BIGINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) )

次に、GenerationType.IDENTITYがその仕事をしなければなりません。

于 2013-03-10T15:16:25.713 に答える