日期:2014-05-17  浏览次数:20935 次

hibernate多对多 第三章表插不进去
User表 friend 是朋友表 查补进去 springmvc + hibernate 




xml

<set name="friends" table="t_user_friend" inverse="true" cascade="save-update"> 
<key column="uid"/>
<many-to-many class="User" column="fid"/>
</set>

查不进去 
User u1 = new User();
u1.setPhoneunmber("1111111");

User u2 = new User();
u2.setPhoneunmber("2222222");
User u3 = new User();
u3.setPhoneunmber("3333333");

Set<User> arr = new HashSet<User>();
arr.add(u2);
arr.add(u3);

u1.setFriends(arr);

sessionFactory.openSession().save(u2);
sessionFactory.openSession().save(u3);

sessionFactory.openSession().save(u1);


配置

<bean id="userDao" class="com.atschool.dao.UserDAO">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="userManagerBase" class="com.atschool.service.UserManager">
<property name="userDao" ref="userDao"></property>
</bean>


<bean id="userManager" parent="transactionBese">
<property name="target" ref="userManagerBase"></property>
</bean>

------解决方案--------------------
多对多时,xml配置两边都加上中间表。
sessionFactory.openSession()调用一次就好了

多对多用来研究hibernate原理还行,实际开发中几乎不会用到。比较复杂难以掌握,不好维护,用不好也会有性能问题,就这样