升级到休眠 3.6.0.FINAL 后出现错误,但它正在使用 3.3.2.GA
我的问题类似于https://forum.hibernate.org/viewtopic.php?p=2452617
在这种情况下,他们设置了 cascade="all" 来解决问题。
但就我而言,我不想更新引用的实体。我没有双向关系,它只是多对一。此处发布的大多数类似问题都建议全部进行级联,但就我而言,它不想级联。
我的映射
<class name="org.hmil.ams.com.model.MyUserDetails" table="CMUPMST_TB">
<id name="username" column="UPMST_USER_NAME" type="java.lang.String"
unsaved-value="0">
<generator class="assigned" />
</id>
<property name="password" column="UPMST_USER_PWD" type="java.lang.String"
not-null="true" />
<property name="UPMST_ROLE_ID" type="long" not-null="true" />
<many-to-one name="UPMST_ROLE" fetch="join" cascade="none"
insert="false" update="false" class="org.hmil.ams.setup.model.CodeMst">
<column name="UPMST_ROLE_ID" />
</many-to-one>
</class>
我正在使用 Spring BlazeDS/flex,我的对象已分离。现在,当我尝试保存新创建的 MyUserDetails 实体时,它说存在 CodeMst 的瞬态实例,(我没有更新实体,但可能是 BlazeDS,而它在反序列化新创建的 MyUserDetail 时,它正在实例化引用的 CodeMst 实体,使用空值,这可能会导致问题,但相同的代码在升级之前工作)任何帮助解决这个问题表示赞赏。