For some reason, with the mapping below in dynamic-map mode, Hibernate ORM will fail to register a column in its metadata for the one-to-one association:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class entity-name="Book">
<id name="id" type="integer"/>
<property name="title" type="string"/>
<one-to-one name="quote" entity-name="Quote" property-ref="book" />
</class>
<class entity-name="Quote">
<id name="id" type="integer"/>
<property name="author" type="string"/>
<property name="content" type="string"/>
<one-to-one name="book" entity-name="Book" fetch="select" foreign-key="book_id" />
</class>
</hibernate-mapping>
As a result, in Hibernate ORM 5.6, the association simply gets ignored: it’s never persisted, never loaded. In Hibernate ORM 6.2, this leads to an exception on startup, which is arguably safer but still not the expected behavior:
|