浏览 3842 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2003-12-02
public class A { private Long id; // A的主键 } public class B { private Long id; //外键 [color=red]// private A aRef;[/color] } B.hbm.xml <one-to-one name="id" class="A" constrained="true" cascade="save-update"/> 请问,一定需要红色的那行才能够实现<one-to-one>的关系吗?例如要求保存B的时候可以级联保存A。[/i] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-12-02
补充B.hbm.xml
<id name="id" column="ID" type="long"> <generator class="foreign"> <param name="property">id</param> </generator> </id> <one-to-one name="id" class="A" constrained="true" cascade="save-update"/> B中需要定义A的引用吗? private A aRef; 不然我发现在 A a = new A();; a.setXXX();; …… B b = new B();; b.setXXX();; b.setId(a.getId(););; session.save(b);; 会跑异常,说No persister for:B |
|
返回顶楼 | |
发表时间:2003-12-02
要。
|
|
返回顶楼 | |
发表时间:2003-12-02
可我把id换成A的引用,也不行:
net.sf.hibernate.MappingException: No persister for: 映射 <class name="com.ebao.test.hibernate.policy.CiPolicy" table="T_CI_POLICY" proxy="com.ebao.test.hibernate.policy.CiPolicy" dynamic-update="true" dynamic-insert="true"> <id column="POLICY_ID" type="long"> <generator class="foreign"> <param name="property">policy</param> </generator> </id> <one-to-one name="policy" class="com.ebao.test.hibernate.policy.Policy" constrained="true" cascade="save-update"/> …… <class name="com.ebao.test.hibernate.policy.Policy" table="T_POLICY_GENERAL" proxy="com.ebao.test.hibernate.policy.Policy" dynamic-update="true" dynamic-insert="true"> <id name="policyId" column="POLICY_ID" type="long"> <generator class="sequence"> <param name="sequence">S_POLICY_GENERAL__POLICY_ID</param> </generator> </id> <!--这里没有定义到子对象的one-to-one--> …… CiPolicy的代码: private Policy policy; public Policy getPolicy(); { return policy; } public void setPolicy(Policy pol); { policy = pol; }保存动作的代码: Policy policy = new Policy();; policy.setXXX(new BigDecimal(1.0000););; // second create one ci policy CiPolicy ciPolicy = new CiPolicy();; ciPolicy.setTradeCode(new Long(5););; ciPolicy.setPolicy(policy);; sess.save(ciPolicy);; sess.flush();; |
|
返回顶楼 | |
发表时间:2003-12-02
引用 net.sf.hibernate.MappingException: No persister for: 它的意思是你没有为一个类定义映射(或者你没有把它的映射加到Configuration中),和one-to-one又没有关系。 |
|
返回顶楼 | |
发表时间:2003-12-03
yehs220 写道 引用 net.sf.hibernate.MappingException: No persister for: 它的意思是你没有为一个类定义映射(或者你没有把它的映射加到Configuration中),和one-to-one又没有关系。 第二次犯这个错误了,谢谢斑竹! |
|
返回顶楼 | |