非識別子列の Hibernate JPA シーケンス
質問:
は可能ですか?データベースシーケンスを利用して、識別子として指定されていないテーブル列の値を生成するまたは Hibernate JPA を使用した複合識別子のコンポーネントですか?
回答:
Hibernate JPA は、識別子として指定されていないプロパティの自動値生成をサポートしていません。 @GeneratedValue アノテーションは、自動インクリメント値を作成するために @Id と組み合わせてのみ使用されます。
回避策:
この制限を回避するには、次のような別のエンティティを作成することを検討してください。生成された識別子 (例:
@Entity public class GeneralSequenceNumber { @Id @GeneratedValue(...) private Long number; } @Entity public class MyEntity { @Id .. private Long id; @OneToOne(...) private GeneralSequnceNumber myVal; }
) このアプローチには、メインエンティティとシーケンスエンティティ間の 1 対 1 の関係。この別個のエンティティを利用することにより、Hibernate はメイン エンティティ内の目的のプロパティに割り当てることができる一意のシーケンス値を生成できます。
以上がHibernate JPA は非 ID 列にシーケンスを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。