Struts2 Hibernate 一对多保存问题

小强提包包 2011-01-07 12:57:55
我知道Hibernate的一对多保存,需要建立一些关系,如A对应多个B,
那么A.getBs().add(B),同时B也要setA(A),也就是说保存前他们要建立双向关系,然后保存。

现在我结合struts2和hibernate,想通过struts2传参的自动装配功能,可以在客户端传到Struts2时自动组装好一对多的关系,然后hibernate直接保存。 我现在遇到的问题是struts2传参,可以构建A-》B的关系,无法实现B-》A的关系,即无法自动调用B.setA,请问有谁知道怎么解决,让B.setA会自动调用.
...全文
504 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ijse 2011-01-09
  • 打赏
  • 举报
回复
最简单直接的办法 ,自己挨个按顺序保存。。反正无论怎么写,数据库都是要这样执行的,这样一点不影响程序的执行效率。
godwanglong 2011-01-07
  • 打赏
  • 举报
回复
@ManyToOne(cascade={CascadeType.ALL})
IT BOY 2011-01-07
  • 打赏
  • 举报
回复
我不太明白你说的问题是什么?
如果想实现一对多的双向关联的话,可以在两边进行配置就可以了!举个例子吧,比如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的集合!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧