ORM: mapeo OneToOne en la columna de unión de clave no primaria - Libro e inventario mapeado por ISBN

Tengo un modelo de libro y un modelo de inventario mapeado por número ISBN, pero ISBN tampoco es la clave principal. Los libros pertenecen a las librerías y el inventario es para un grupo de librerías (BookstoreChain). El inventario es compartido por todas las librerías que pertenecen a una LibreríaChain.

Estoy usando el mapeo Hibernate @OneToOne en el lado del libro para obtener información de inventario uniéndome a la columna ISBN. De alguna manera, Hibernate genera la consulta de combinación externa izquierda correctamente, pero el inventario es nulo en el objeto Libro. No es perezoso cargado tampoco. Ignorando la librería y la cadena, ¿cómo hago para unir y recuperar un inventario de OneToOne o ManyToOne cuando se obtienen libros?

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
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta