多对多关系的话最好创建一个中间表T1_T2(id1,id2),然后实现T1,T2的多对多

解决方案 »

  1.   

    Hibernate的多对多关系必须通过中间表来实现,不是一两句话能说清楚,请自己看Hibernate文档(有中文版,到满江红开源去下)多对多关系的出现很有可能是设计上的问题,最好能解构成两个一对多关系
      

  2.   

    用compositekey来解决,为多主键建一个类
      

  3.   

    hibernate应尽量避免使用联合主键
      

  4.   

    hibernate应尽量避免使用联合主键,不要使用多对多,实在不行用中间表,拆成两个一对多
      

  5.   

    呵呵,同意楼上的,要改变思想了,以前开发的时候用多个主键去关联,操作起来还没有什么问题,现在用hibernate最好是一个表一个主键,而且用hibernate自动生成,还是挺方便的。。
      

  6.   

    直接使用sql语法去执行吧
    <sql-query name="ag_mem">
        <![CDATA[
         select {a.*} from account a where a.accountcodehigh=:name and a.level="m" and ( a.status=:statusa   or   a.status=:statusb  ) order by :orderby desc
        ]]>
        <return alias="a"  class="com.poker.hibernate.Account"/>
    </sql-query>
      

  7.   

    keerqin() ( ) 信誉:91    Blog  2006-9-7 21:35:31  得分: 0  
     
     
       
    hibernate应尽量避免使用联合主键,不要使用多对多,实在不行用中间表,拆成两个一对多
      
     ----------------------------------
    多对多关系在某些情况下还是需要的,比如改造过去的系统等,只不过应该尽量避免