我已经为这个问题苦苦挣扎了一段时间了。它看起来比我想象的要简单得多:
<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
之间的一对一映射。
关于java - 从 Hibernate hbm 到 JPA 注释,一个具有挑战性的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2918857/