java - 更新用户时,删除的对象将通过级联重新保存(从关联中删除删除的对象)

标签 java hibernate nhibernate hibernate-mapping

hibernate 映射:

User.hbm.xml

<hibernate-mapping package="com.user">
  <class name="User" lazy="true" table="USER">
<set name="StudentOrganizations" inverse="true" cascade="all-delete-orphan"    fetch="select" sort="natural">
<key>
<column name="STUDENT_ID" not-null="true" />
    </key>
<one-to-many class="com.StudentOrganization" />
</set>
</class>



StudentOrganization.hbm.xml

<hibernate-mapping>
 <class name="com.StudentOrganization" table="USER_ORGANIZATION">
 <cache usage="read-write" />
   <many-to-one name="user" class="com.User" update="false" insert="false" fetch="select">
<column name="STUDENT_ID" not-null="true" />
   </many-to-one>
   <many-to-one name="organization" class="com.Organization" update="false" insert="false" fetch="select">
  <column name="ORGANIZATION_ID" not-null="true" />
   </many-to-one>
 </class>
 </hibernate-mapping><BR>

更新学生记录时的伪代码。

myDAO.detach(myOldDetails);
myDAO.merge(aResource);

在更新学生详细信息时出现错误: "deleted object would be re-saved by cascade (remove deleted object from associations): [com.StudentOrganization]....."

最佳答案

这是一个类似的 question .

希望..添加 fetchType=lazy 能够解决您的问题。

关于java - 更新用户时,删除的对象将通过级联重新保存(从关联中删除删除的对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19044469/

相关文章:

c# - 如何将参数传递给 IN 运算符?

java - 可以在我的杯子里混合牛奶和咖啡

java - BufferedReader 使用 .read() 方法实际读取了多少字节?

java - 使用 java-google-translate-text-to-speech Api 的 IO 异常

java - 查询日期范围内的记录时需要向后拉记录

c# - 如何使用 Nhibernate 的代码映射生成访问 ="field.camelcase-underscore"?

java - 在同一台计算机上运行的java应用程序之间进行通信的最佳方式

java - 通过值在多对多集合中的存在来过滤 Hibernate 实体

java - 在 Hibernate 中检索多对多映射中的集合

.net - SQLite:sqlite3.dll 与 System.Data.SQLite.dll?