社区
Java EE
帖子详情
hibernate中many-to-one的问题(在线等)
hoptyy
2005-07-05 05:11:02
我的parent的inverse=false,cascade="all"表明由parent控制关联,
并且级联save,update,delete child
save parent时,要使child的主键都为空才可以级联的save child.但是我现在有一个问题
我的parent中不止一个child,应该都存放在parent的set中,但是因为主键为空,在往set中存数据的时候
set认为我的对象都是相同的,只能存一个,怎么办呢?
...全文
415
10
打赏
收藏
hibernate中many-to-one的问题(在线等)
我的parent的inverse=false,cascade="all"表明由parent控制关联, 并且级联save,update,delete child save parent时,要使child的主键都为空才可以级联的save child.但是我现在有一个问题 我的parent中不止一个child,应该都存放在parent的set中,但是因为主键为空,在往set中存数据的时候 set认为我的对象都是相同的,只能存一个,怎么办呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhenyang2002
2005-07-29
打赏
举报
回复
看看夏昕写的 hibernate 开发指南。
mxlmwl
2005-07-29
打赏
举报
回复
还是建议你用inverse="true",即在子一方进行控制。
mxlmwl
2005-07-29
打赏
举报
回复
主程序
Child child=new Child();
child.setName("你好");
child.setSex(1);
child.setOther("你好,这是一个备注");
child.setUserid("feixing");
Toy t1 = new Toy();
t1.setName("wawa1");
t1.setChild(child);
Toy t2 = new Toy();
t2.setName("wawa2");
t2.setChild(child);
Toy t3 = new Toy();
t3.setName("wawa3");
t3.setChild(child);
//可以不注意先后顺序
bdao.addEntity(t1);
bdao.addEntity(t2);
//bdao.addEntity(child);
--------------------
Child.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<!-- com.demo.test.domain.manytoone.Child root -->
<class name="com.demo.test.domain.manytoone.Child" table="t_child">
<!--<id name="id" column="child_id" unsaved-value="0">
<generator class="sequence">
<param name="sequence">seq_child</param>
</generator>
</id>-->
<id name="id" column="child_id" unsaved-value="0">
<generator class="increment"/>
</id>
<property name="userid" column="child_userid"/>
<property name="name" column="child_name"/>
<property name="sex" column="child_sex"/>
<property name="other" column="child_other"/>
</class>
</hibernate-mapping>
------------------------------------
Toy.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<!-- com.demo.test.domain.manytoone.Toy root -->
<class name="com.demo.test.domain.manytoone.Toy" table="t_toy">
<!--<id name="toyId" column="toy_id" unsaved-value="0">
<generator class="sequence">
<param name="sequence">seq_toy</param>
</generator>
</id>-->
<id name="toyId" column="toy_id">
<generator class="increment"/>
</id>
<property name="name" column="toy_name" type="string"/>
<many-to-one name="child"
column="child_name"
class="com.demo.test.domain.manytoone.Child" property-ref="other" cascade="save-update"/>
</class>
</hibernate-mapping>
--------------
不多说了,Code is All。自己看代码。
jl220
2005-07-23
打赏
举报
回复
子类的unsave_value设为null。
好风软件工作日
2005-07-05
打赏
举报
回复
child类是不是需要重写equals和hashCode阿?
blackdreamzg
2005-07-05
打赏
举报
回复
在mapping中把set换成bag,例如
<bag
name="Pic"
table="pic"
lazy="false"
inverse="false"
cascade="all"
>
<key
column="airdrome_id"
/>
<one-to-many
class="org.qf.hibernate.pojo.Pic"
/>
</bag>
hugebrush
2005-07-05
打赏
举报
回复
没注意过一个对象能不能两次添加到Set,但属性完全一样的两个对象是可以都加入Set中的呀。
fengyun1314
2005-07-05
打赏
举报
回复
既然是由父对象控制,那主键肯定由父控制,好像有一个unsave_vale的可以设置保存的条件。
hoptyy
2005-07-05
打赏
举报
回复
我往数据库中insert一个父对象的时候,它的子对象主键要为空或某一特定值
时才可以自动的insert
clearwater21cn
2005-07-05
打赏
举报
回复
save parent时,要使child的主键都为空才可以级联的save child是什么意思?
Hibernate
中
文API大全
这个时候你就应该考虑一下使用one-to-many关联是否会更恰当。 尝试对这个组合元素重新建模为一个实体-但是需要注意的是,虽然Java模型和重新建模前是一样的,关系模型和持久性语义会有细微的变化。 请注意如果你...
Hibernate
_3.2.0_符合Java习惯的关系数据库持久化
6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...
Java全栈工程师-
Hibernate
框架
本课程详细讲解
Hibernate
的常用的关联关系映射,如一对一,一对多,多对多等 本课程详细讲解
Hibernate
各种查询方法,如HQL查询,Criteria查询,本地SQL查询等 本课程讲解
Hibernate
各种高级特性,如延迟...
Hibernate
实体级联配置(one-to-one,many-to-one,many-to-many)
Hibernate
实体级联配置(one-to-one,many-to-one,many-to-many)
Hibernate
:many-to-one(多对一)关联映射详解
理解多对一映射,并分3种情况,对many-to-one在
Hibernate
中
的应用进行探索。
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章