ORM:Non Primary-Key Join列上的OneToOne映射 - 按ISBN映射的Book和Inventory

Sat*_*ish 7 java orm activerecord hibernate one-to-one

我有一个按ISBN号映射的Book模型和Inventory模型,但ISBN不是其中的主键.书籍属于Bookstores,而Inventory是针对一组书店(BookstoreChain).库存由属于BookstoreChain的所有书店共享.

我正在书侧使用Hibernate @OneToOne映射来加入ISBN列来获取库存信息.不知何故,Hibernate正确生成左外连接查询,但库对象上的库存为空.它也不是懒惰的.忽略书店和连锁店,如何在提取书籍时进行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
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ark 0

只是猜测:name = 'ISBN' 是否需要与 Inventory 中的字段相同?