想要把物品表GOODS里面的两个字段buyerId和userId和表USER的主键建立ManyToOne关系,根本上也就是想让buyerId只能在user表的主键中取,而且删除user表的主键导致buyerId孤立的时候,阻止删除。各位大侠,是这个意思吧!
 xml文件如下:
<hibernate-mapping>
<class name="entity.Goods" table="GOODS">
<id name="Id">
<generator class="native"></generator>
</id>

<property name="goodsName"></property>
<property name="goodsPrice"></property>
<property name="goodsDesc"></property>
<property name="goodsPic"></property>
<!--<property name="salerId"></property> -->
<property name="beginTime"></property>
<property name="endTime"></property>
<!-- <property name="buyerId"></property> -->
<property name="goodsStatus"></property>
<many-to-one name="user" column="salerId" />
<!-- <many-to-one name="user" column="buyerId" />-->
    </class>

</hibernate-mapping>
最后一个manyToOne我给注释掉了,因为一加上就报错:
Exception in thread "main" org.hibernate.MappingException: Duplicate property mapping of user found in entity.Goods
只要加一个manyToOne的时候是好用的,请问加两个的方法是什么?谢谢!

解决方案 »

  1.   

    user是你good 实体类的一个属性,对应你good表的salerid 对吧,
    你good表里还有个buyerid字段,也要引用user表,
    那么你的good实体类里应该还要有个buyer对应的属性,
    你的good实体类里
    private User user;
    private User buyer;
    这样就好了,你只是要两个字段引用一个表,也就是说有两个属性是一个类型,user类型就可了‘你再做映射
    就这样,
    <many-to-one name="user" class="User" column="salerId" />
    <many-to-one name="buyer" class="User" column="buyerId" />
    不知道你明白没