ISBN番号でマップされたブックモデルとインベントリモデルがありますが、ISBNはどちらのプライマリキーでもありません。書籍は書店に属し、在庫は書店のグループ用です(BookstoreChain)。在庫は、BookstoreChainに属するすべての書店で共有されます。ORM:Non Primary-Key Join列のOneToOneマッピング - ISBNによってマップされたブックとインベントリ
私は書籍側で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
}
これは問題ありません。示されているコードは単なる指標である。本当の問題はOneToOneのどこかにある – Sathish
ok - あなたは私を得ました。私はまだ休止状態のプロジェクトでアノテーションを使用していません。あなたは、データが実際に関係を持っているかどうかだけチェックするかもしれません。 – Martlark