我已经为此苦苦挣扎了一段时间了。它看起来比我想象的要简单得多:

    <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来处理COTISATIONCOTISATION_SYNCHRO之间的一对一映射。

07-24 18:22