日期:2014-05-20  浏览次数:20777 次

hibernate 小问题!请指点
两个Objects:A(x,y),B(y,z) 他们通过y关联
A a = new A( x );
B b = new B( y );
A.setB( b );
A.save();
A.frush();

这样情况下,y的值会被存储到A表中吗?

------解决方案--------------------
你配置文件怎么写的?
------解决方案--------------------
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping
package = "com.redprairie.tm.core">

<class name="A" table="A">

<composite-id name="PK" class="OrderCartonDetailPK" >
<key-property name="X" column="x" />
</composite-id>
<many-to-one
name="B"
class="B"
insert="false"
update="false" >
<column name="y" />
<column name="ordsln" />
</many-to-one>

</class>
</hibernate-mapping>
------解决方案--------------------
Hibernate是建议每张表都有个id属性,并且是通过id来构造外键关系的.
你最好符合这样的规范.
------解决方案--------------------
同意楼上的,感觉你的表有点混乱,用hibernate还是注意好主外键的关系,

光看表面 你的y似乎并不是主外键,都不知道你的关系是什么,自然怎么保存也无好说了