请问那位有经验者知道Hibernate 下 影射多对多 模型的 数据处理,是分解为2个一对多吗?
请问那位有经验者知道Hibernate 下 影射多对多 模型的 数据处理,是分解为一对多吗?
如果是这样的话,数据库中 A<----B---->C 如何保存处理B表对象b的数据到库中呢?
表A,B,C都有各自的主键
表A(a_ID,ect, ... ) ;
表B(b_ID,refrences(a_ID),refrence(c_ID)) ;分别引用A,C表中的主键 。
表C(c_ID,ect, ... ) ;
与A对象a.(set_b)影射的 配置文件 中<set>inverse=true lazy=true
与B对象b.(set_b)影射的 配置文件 中 <many-to-one > not-null=true
与C对象c.(set_b)影射的 配置文件 中<set>inverse=true lazy=true
但是在作以下测试时不能完成!
B b=new B();//B中的省略其他 .没有属性,和B表中一致
C c=new C();
c.setAddress("地址");
c.setName("jim");
c.setPwd("1234");
c.setSex(new Character('m'));
c.setTel("12456789");
A a=new A();
a.setIsbn("123456");
a.setAuthor("haha");
a.setBookName("英语");
a.setPrice(new Float(12.0));
a.setPublisher("中国");
a.setQuality(new Integer(100));
b.setA(a); 给b对象中的类A对象(b.a) 赋值
a.getB().add(b); a.Set集合赋值
b.setC(c); 给b对象中的类C对象(b.c) 赋值
c.getB().add(b); c.Set集合赋值
new BusinessService().saveA(a); 这是一个自己写的一个函数,传进 一个相应的类可以处理a类,是一个事务(只是执行session.save(a);)
new BusinessService().saveC(c);这是一个自己写的一个函数,传进 一个相应的类可以处理c类,是一个事务(只是执行session.save(c);)
出现错误:
[java] net.sf.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: Library.A
[java] at net.sf.hibernate.impl.SessionImpl.throwTransientObjectException(SessionImpl.java:2788)
请有经验者给予建议或是思路,先谢谢了 !
问题点数:100、回复次数:0Top




