hibernate配置:user表的主键id是bank表与wage表的外键,user.hbm.xml要怎么配置?
<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/Hib...
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.sms.po.User" table="user" catalog="sms">
<id name="id" type="java.lang.String">
<column id="id" length="50" />
<generator class="native"></generator>
</id>
<property name="pwd" type="java.lang.String">
<column name="pwd" length="50" />
</property>
<set name="banks" inverse="true" cascade="all" table="bank" lazy="true" >
<key>
<column name="id" length="50" />
</key>
<one-to-many class="com.sms.po.Bank" />
</set>
<set name="wages" inverse="true" cascade="all" table="wage" lazy="true">
<key>
<column name="id" length="50" />
</key>
<one-to-many class="com.sms.po.Wage" />
</set>
</class>
</hibernate-mapping>
如此配置访问出错
如果user表的主键id只是bank的外键,除去上述user.hbm.xml中的
<set name="wages" inverse="true" cascade="all" table="wage" lazy="true">
<key>
<column name="id" length="50" />
</key>
<one-to-many class="com.sms.po.Wage" />
</set>
就可以正常访问?
求原因、对策。。。。。。 展开
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.sms.po.User" table="user" catalog="sms">
<id name="id" type="java.lang.String">
<column id="id" length="50" />
<generator class="native"></generator>
</id>
<property name="pwd" type="java.lang.String">
<column name="pwd" length="50" />
</property>
<set name="banks" inverse="true" cascade="all" table="bank" lazy="true" >
<key>
<column name="id" length="50" />
</key>
<one-to-many class="com.sms.po.Bank" />
</set>
<set name="wages" inverse="true" cascade="all" table="wage" lazy="true">
<key>
<column name="id" length="50" />
</key>
<one-to-many class="com.sms.po.Wage" />
</set>
</class>
</hibernate-mapping>
如此配置访问出错
如果user表的主键id只是bank的外键,除去上述user.hbm.xml中的
<set name="wages" inverse="true" cascade="all" table="wage" lazy="true">
<key>
<column name="id" length="50" />
</key>
<one-to-many class="com.sms.po.Wage" />
</set>
就可以正常访问?
求原因、对策。。。。。。 展开
1个回答
展开全部
hibernate分不清慧辩 Id到底是哪启碧局个表的外键悄让了、
可以 private int wagesId;
private Wages wages;
private setWagersId(int wagesId)
{
this.wagesId=wagesId;
this.wages=Wages 类下的getWagesById(wagesId);
}
前提是如果 你查询user表 需要用到这两个表。
可以 private int wagesId;
private Wages wages;
private setWagersId(int wagesId)
{
this.wagesId=wagesId;
this.wages=Wages 类下的getWagesById(wagesId);
}
前提是如果 你查询user表 需要用到这两个表。
追问
user表的id既是wage表的外键也是bank的外键怎么办?
追答
选一个 另一个手动获得、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询