我有一个由 ISBN 编号映射的 Book 模型和 Inventory 模型,但 ISBN 不是两者的主键。书籍属于书店,库存是一组书店(书店链)。库存由属于 BookstoreChain 的所有书店共享。
我在图书端使用 Hibernate @OneToOne 映射通过加入 ISBN 列来获取库存信息。不知何故,Hibernate 正确地生成了左外连接查询,但 Book 对象的库存为空。它也不是延迟加载的。忽略书店和连锁店,我如何在获取书籍时进行 OneToOne 或 ManyToOne 加入并获取库存?
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
}