エンティティの世代IDの場合、アプリケーションはトリガを使用します。だから、エンティティに生成された値を割り当てるために、私たちはこのような構造を使用します。コンポジット@HibernateエンティティのNaturalId
@Id
@Column(name = "INVOICE_ID")
@GeneratedValue(generator = "trigger")
@GenericGenerator(name = "trigger", strategy = "org.hibernate.id.SelectGenerator")
private Long invoiceId;
@Column(name = "INVOICE_AMOUNT")
@NaturalId(mutable = true)
private Double invoiceAmount;
SelectorGenerator
はすべきでは(論理的に)一意の値を持ついくつかのフィールド、ため@NaturalId
を使用する必要があります。しかし、一部のテーブルには、一意の値を持つフィールドはありません。 SelectGenerator
は複数の自然IDをサポートしていません。この状況をどうやって取り戻すことができますか?