关于hibernate4多对一双向关联,求教大家帮助

gujianting2010 2012-08-03

我用的是hibernate4.0,在做多对一双向关联时,会报如下错误:

   Table [COURSES] contains logical column name [ID] referenced by multiple physical column names: [ID], [s_id]

,用hibernate3是好的,相关代码如下

<class name="Student">
  <id name="id" >
   <generator class="native" />
  </id>
  <property name="name" type="string" length="20" not-null="true" />
  <property name="age" />
  <property name="count" formula="(select count(s.id) from Student s)" />
 
  <set name="courses" cascade="all" >
   <key column="s_id" not-null="true"></key>
   <one-to-many class="Course" />
  </set>
    
 </class>

<class name="Course">
  <id name="id" >
   <generator class="native" />
  </id>
  <property name="courseName" type="string" length="20"
   not-null="true" />
  <many-to-one name="student" class="Student" column="s_id"
   not-null="true" cascade="all"/>
 </class>

请知道的大侠们,给指点下,不盛感激!

yiwentiger 2012-08-06
<set name="courses" cascade="all"  inverse="true" >
   <key column="s_id" not-null="true"></key>
   <one-to-many class="Course" />
  </set>
试试呢?
gujianting2010 2012-08-07
不行,是不是hibernate4以双向关联方面做了改动?多对多,也有问题,在3中是好的,只有一对一是好的,请行家给指点下
tyyytcj 2012-08-10
你试试把many to one 那端的 clumn属性去掉呢
gujianting2010 2012-08-10
试过了,不行,在hibernate4.0使用多以一,多对多双向关联时就出现这样问题,一对一是好的,在一对多关联时,在多的一方设置单向,是好的,在单方设置,就报此错,关于设置属性,试了很多,不起作用,在hibernate3中都是好的
tyyytcj 2012-08-10
只有看看官方实例了
我还没用到那么新
yiwentiger 2012-08-14
hibernate4 我用过注解都能行,没用过配置文件
tsichang 2012-08-20
看了几遍都没觉得有什么毛病,是不是你数据库里原来的表没有删除呢?
一日一博 2012-08-31
现在还用xml?  改用注解吧。。。
Global site tag (gtag.js) - Google Analytics