ISBN 番号でマップされた Book モデルと Inventory モデルがありますが、ISBN はどちらの主キーでもありません。Books は Bookstore に属し、Inventory は Bookstores のグループ (BookstoreChain) に属します。在庫は BookstoreChain に属するすべての書店で共有されます。
本側で Hibernate @OneToOne マッピングを使用して、ISBN 列に参加して在庫情報を取得しています。どういうわけか、Hibernate は左外部結合クエリを正しく生成しますが、Book オブジェクトの在庫は null です。遅延ロードもありません。Bookstore と Chain を無視して、OneToOne または ManyToOne 結合を実行し、Books が取得されたときにインベントリを取得するにはどうすればよいですか?
class Book{
@Id
Long id
@Column
String isbn;
@Column
String title;
@OneToOne(optional = true)
@JoinColumn(name = "isbn", referencedColumnName = "isbn",insertable = false, updatable = false)
Inventory inventory;
}
class Inventory{
@Id
Long id
@Column
String chainId
@Column
String isbn
@Column
Long availableQty
}