struts 1抛出org.hibernate.transientObject异常
我正在尝试将活动审计添加到struts 1应用程序中。我更改了一个对象,然后我想在我的审核表中创建一行,该行引用了更改后的对象。我得到TransientObjectException,因为我更改了引用对象。我尝试刷新会话,但没有解决问题,我不知道为什么struts 1抛出org.hibernate.transientObject异常,hibernate,struts-1,Hibernate,Struts 1,我正在尝试将活动审计添加到struts 1应用程序中。我更改了一个对象,然后我想在我的审核表中创建一行,该行引用了更改后的对象。我得到TransientObjectException,因为我更改了引用对象。我尝试刷新会话,但没有解决问题,我不知道为什么 merchant.setTrusted(false); merchantDAO.saveOrUpdate(merchant); // trying to resolve org.hibernate.PropertyValueException:
merchant.setTrusted(false);
merchantDAO.saveOrUpdate(merchant);
// trying to resolve org.hibernate.PropertyValueException: not-null property references a null or transient value: com.rc.model.ActivityAudit.user
SessionManagerFactory.getSessionManager(DatasourceType.M).getSession().flush();
ActivityAuditManager.addActivityAudit("Set merchant to untrusted", merchant, userAccount);
其中ActivityAuditManager.addActivityAudit()是:
我得到的例外是:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing
但据我所知,我是
ETA映射:
<class name="com.rc.model.ActivityAudit" table="activity_audit" discriminator-value="0">
...
<many-to-one name="merchant" class="com.rc.model.Merchant"
column="merchantid" unique="false" not-null="true" cascade="none"/>
...
...
...
我尝试了cascade=“all”
和cascade=“save update”
,但都没有改善这种情况
ETA:请参见下面我自己的答案,但实际上已经解决了它。有两个问题。第二个问题在我修复第一个问题时被发现,它最初掩盖了一个事实,即
cascade=“save update”
确实解决了这个问题
在这个问题上,,
用户发布了一个调试方法,对我帮助很大
我没有注意到第二个问题,直到我使用了调试方法并更详细地检查了异常
<class name="com.rc.model.ActivityAudit" table="activity_audit" discriminator-value="0">
...
<many-to-one name="merchant" class="com.rc.model.Merchant"
column="merchantid" unique="false" not-null="true" cascade="none"/>
...