我知道Hibernate的一对多保存,需要建立一些关系,如A对应多个B,
那么A.getBs().add(B),同时B也要setA(A),也就是说保存前他们要建立双向关系,然后保存。现在我结合struts2和hibernate,想通过struts2传参的自动装配功能,可以在客户端传到Struts2时自动组装好一对多的关系,然后hibernate直接保存。 我现在遇到的问题是struts2传参,可以构建A-》B的关系,无法实现B-》A的关系,即无法自动调用B.setA,请问有谁知道怎么解决,让B.setA会自动调用.
那么A.getBs().add(B),同时B也要setA(A),也就是说保存前他们要建立双向关系,然后保存。现在我结合struts2和hibernate,想通过struts2传参的自动装配功能,可以在客户端传到Struts2时自动组装好一对多的关系,然后hibernate直接保存。 我现在遇到的问题是struts2传参,可以构建A-》B的关系,无法实现B-》A的关系,即无法自动调用B.setA,请问有谁知道怎么解决,让B.setA会自动调用.
解决方案 »
- web负载,请有经验的人指导一下,谢谢
- 大家show下经验,当servlet/jsp,ssh,算是学完了,接下来应该学些什么呢?
- 求助:org.hibernate.MappingException: Unknown entity:XXX
- hibernate多对多级联添加问题...........................................................
- 求Java分页的控件或者代码
- hibernate事务控制问题
- 急啊。看一下这个错误,小弟搞了好几天没有找到原因?请高手指教。
- filter中出现的小问题.请帮帮忙.不欢迎灌水!
- 哪位兄弟有J2EE的电子书?
- 关于servlet-mapping的问题!
- 如何提高阅读项目源码的能力
- 使用cmd调用带有Hibernate的程序
如果想实现一对多的双向关联的话,可以在两边进行配置就可以了!举个例子吧,比如Father和son的一对多关系,一个Father可以对应多个son,那么要在Father这么配置一个Set<Son>的属性,然后在son的一边配置一个Father对象的属性,然后配置hbm.xml,将他们映射为双向关联,可以映射为级联!我贴上代码吧,更清楚一点!Father:
private int id;
private String name;
private Set<Son> sons;
Son
private int id;
private String name;
private Father father;
Father.hbm.xml<hibernate-mapping>
<class name="com.ibm.etp.entity.Father" table="father" schema="scott">
<id name="id" column="f_id" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="name" column="f_name" type="java.lang.String" length="20"></property>
<set name="sons" cascade="all">
<key column="father_id"></key>
<one-to-many class="com.ibm.etp.entity.Son"/>
</set>
</class>
</hibernate-mapping>
Son.hbm.xml<hibernate-mapping>
<class name="com.ibm.etp.entity.Son" table="son" schema="scott">
<id name="id" column="id" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="name" column="name" type="java.lang.String" length="20"></property>
<many-to-one name="father" class="com.ibm.etp.entity.Father" cascade="all">
<column name="father_id"></column>
</many-to-one>
</class>
</hibernate-mapping>
当你获得一个Father对象后,并设置好Father和Son的关系后,只要插入Father就可以保证也同时插入Son!
获取的时候,只要你有Father对象,调用getSons就可以获得set类型的son的集合!