我已经为此苦苦挣扎了一段时间了。它看起来比我想象的要简单得多:
<join table="COTISATION_SYNCHRO" fetch="join" optional="true">
<key column="COTISATION_SYNCHRO_COTISATION_ID_FK" on-delete="noaction"/>
<property name="cotisationCoupon" type="java.lang.Long" update="true" insert="true">
<column name="COTISATION_COUPON" not-null="true" unique="true"/>
</property>
<property name="synchroData" type="com.allence.opcapl.alpha2.common.model.synchro.SynchroDataType">
<column name="LAST_ACCESS_LOCAL" not-null="true"/>
<column name="LAST_UPDATE_LOCAL" not-null="true"/>
<column name="LAST_ACCESS_REMOTE" not-null="true"/>
<column name="LAST_UPDATE_REMOTE" not-null="true"/>
</property>
</join>
它包含在
COTISATION
表映射中,并使用SynchroDataType
扩展了Hibernate UserType
。这确实很棒,但是在保持便利性的同时,我找不到找到将其转换为适当的JPA的方法。
有人针对这种一对一映射有解决方案吗?
最佳答案
查看@Embedded注释以解决您的非实体对象SynchroDataType
,并查看@SecondaryTable来处理COTISATION
和COTISATION_SYNCHRO
之间的一对一映射。