论坛首页 Java企业应用论坛

save(object)一问

浏览 5675 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2003-10-03  
如果一个object有一个collection
<class name="objectClass" table="objectTable">
...........
<list name="items" cascade="all" inverse="true">
	<key column="pk"/>
	<index column="itemIndex"/>
                <one-to-many class="itemClass"/>
</list>
........

<class name="itemClass" table="itemTable">
........

我session.save(object)时只保存object自己的属性,而不会保存list,能否做到保存object的同时自动的保存list呢?
   发表时间:2003-10-04  
引用

我session.save(object)时只保存object自己的属性,而不会保存list

应该会呀,你已经在映射文件中设置了list cascade="all"呀。
0 请登录后投票
   发表时间:2003-10-04  
是不是没有设置 list 里的对象的 id 的 unsaved value,所以没有保存 list 里的对象?
0 请登录后投票
   发表时间:2003-10-05  
我试过了,的确list的对象没保存
我的itemClass正好是用复合主键,会不会是这个原因呢
下面是我的真实配置文件
<class name="com.hjc.web.vote.Vote" table="vote">
		<id name="id" column="pid">
			<generator class="identity"/>
		</id>
		<property name="type" not-null="true"/>
		<property name="name" length="30" not-null="true"/>
		<property name="description" length="100" not-null="false"/>
		<property name="createTimeInDate" column="createTime" type="date" update="false" not-null="true"/>
		<property name="exceedTimeInDate" column="exceedTime" type="date" not-null="true"/>
		<list name="items" cascade="all" inverse="true" lazy="false">
			<key column="pid"/>
			<index column="itemIndex"/>
			<one-to-many class="com.hjc.web.vote.VoteItem"/>
		</list>
	</class>
	<class name="com.hjc.web.vote.VoteItem" table="vote_item">
		<composite-id>
			<key-property name="pid"/>
			<key-property name="index" column="itemIndex"/>
		</composite-id>
		<property name="content" length="50" not-null="true"/>
		<property name="count" not-null="true"/>
	</class>


我知道我这样配置是有点怪的了,但我现在面对的是一个遗留系统,
我在想保存Vote对象时它的主键是自动生成的,而VoteItem却需要Vote的主键作为他的复合主键的一部分,所以VoteItem没有足够的信息保存自己呢?
这是我的猜想,我是个hibernate的小菜,呵呵,说错了不要见怪.
0 请登录后投票
   发表时间:2003-10-06  
我以前也遇到这种情况,我把inverse="false" 就好了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics