SSH 关于hibernate多对多中间表的操作 50
SSH框架hiberante映射关系ClassAdminClassEmployeeprivateSet<Employee>emps;privateSet<Admin>pr...
SSH框架
hiberante映射关系
Class Admin Class Employee
private Set<Employee> emps; private Set<Admin> privs;
admin. hbm.xml
<set name="emps" table="t_admin_detail" >
<key column="aid"/>
<many-to-many class="com.crm.pojo.Employee" column="eid"/>
</set>
employee.hbm.xml
<set name="privs" table="t_admin_detail" >
<key column="eid"/>
<many-to-many class="com.crm.pojo.Admin" column="aid"/>
</set>
这些都是powerdesign自动生成的我修饰了下,中间表也是自动生成的
这下问题就来了。
我将admin 和 employee 传递到action中(当然我手动调用了hibernate.initalize(admin.getEmps))
admin.getEmps.contain(employee) 返回了false ,(但是从中间表里看,他们的数据确实是有对应关系的)问题1:为什呢会返回FALSE?
而且配置admin.hbm.xml,cascade=“save-upcate” 和 lazy="false"以后(后来也试着加了inverse=ture)
此时添加关联没问题,但是删除关联的时候有时候可以删除(少数情况,均是在DAO层操作),有时候又不能(不发送SQL语句更新中间表),问题2:为什么不能删除关联? 展开
hiberante映射关系
Class Admin Class Employee
private Set<Employee> emps; private Set<Admin> privs;
admin. hbm.xml
<set name="emps" table="t_admin_detail" >
<key column="aid"/>
<many-to-many class="com.crm.pojo.Employee" column="eid"/>
</set>
employee.hbm.xml
<set name="privs" table="t_admin_detail" >
<key column="eid"/>
<many-to-many class="com.crm.pojo.Admin" column="aid"/>
</set>
这些都是powerdesign自动生成的我修饰了下,中间表也是自动生成的
这下问题就来了。
我将admin 和 employee 传递到action中(当然我手动调用了hibernate.initalize(admin.getEmps))
admin.getEmps.contain(employee) 返回了false ,(但是从中间表里看,他们的数据确实是有对应关系的)问题1:为什呢会返回FALSE?
而且配置admin.hbm.xml,cascade=“save-upcate” 和 lazy="false"以后(后来也试着加了inverse=ture)
此时添加关联没问题,但是删除关联的时候有时候可以删除(少数情况,均是在DAO层操作),有时候又不能(不发送SQL语句更新中间表),问题2:为什么不能删除关联? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询