<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate- mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.business.Test" table="Test">
<composite-id name="key">
<key-property name="x" column="X"/>
<key-property name="y" column="Y"/>
</composite-id>
<set name="valueObjects" inverse="false" lazy="false" cascade="all">
<key>
<column name="X"/>
<column name="Y"/>
</key>
<one-to-many class="com.business.ValueObjects" />
</set>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.business.ValueObjects" table="ValueObjects" mutable="false">
<id name="id" type="java.lang.Long" column="ID">
<generator class="sequence">
<param name="sequence">ID_SEQ</param>
</generator>
</id>
<property name="x" column="X"/>
<property name="y" column="Y"/>
</class>
</hibernate-mapping>
当我加载Test对象时,hibernate会加载ValueObjects集合。但是当我更新ValueObjects并保存Test时。我没有看到任何插入或更新语句。
PLease建议做什么。
Raulito
答案 0 :(得分:2)
在休眠状态下,类中的“可变”默认为“ true ”及其相关集合,它表示类或集合是允许添加,更新和删除。另一方面,如果 mutable 更改为false ,则它在类及其相关集合中具有不同的含义。因此,您需要删除 mutable 属性并将反向属性设置为 true 。