hibernate.hbm.xml
<class name="com.test.Aclrole" table="acl_role" discriminator-value="W">
<id name="roleid" type="int" >
<column name="roleid" not-null="true"/>
<generator class="native"/>
</id>
<property name="rolename" type="string">
<column name="rolename" sql-type="varchar(99)" />
</property>
<property name="roledesc" type="string">
<column name="roledesc" sql-type="varchar(99)" />
</property>
<set name="permission" cascade="all" inverse="true">
<key column="roleid"/>
<one-to-many class="com.test.Aclrolepermission"/>
</set>
</class>

DAO code:
Aclrole aclrole = (Aclrole)getHibernateTemplate().load(Aclrole.class ,role.getRoleid());
aclrole.setRolename(role.getRolename());
aclrole.setRoledesc(role.getRoledesc());
getHibernateTemplate().update(aclrole);


After that I check the database, the data is old,no update executed.

and I debug the code
after aclrole.setRoledesc(role.getRoledesc());
I use System.out.println(aclrole.getRoledesc()); to display the data,but I found that the data is old, the setRoledesc() method doesn't take effect.
How can i do