数据库表kind有列users列.users列中存储多位user的id号.如"88+99+23+67".请问我如何映射kind这个类使它有user的实体集啊?

解决方案 »

  1.   

    kind里面包含多个user这个是多对一
    有两种方法:
    1、在kind看来关系是一对多
       就是一个kind中又多个user
       在kind中添加一个属性Set<User> user;
       在kind的配置文件中配置<one-to-many>
    2、换个角度在user看来关系是多对一
       就是多个user对应一个kind
       在user类加上一个属性Kind kindId
       在配置文件中配置<many-to-one>
      

  2.   

    你的意思是kind里面有多个User?
      

  3.   

    表kind其中的一行id    kind    users
    --------------------
    4      3      8+34+21
    5      5      87+123+543
    .
    .
    .如何映射成kind类啊.使kind类里有user的实体集如:
    kind.users
      

  4.   

    这个hibernate没有这种配置。你得自己继承hibernate的解析类针对你这个kind类去重写它对关联关系的对象获取方法。
      

  5.   

    hibernate肯定不能这样映射的,自己解析把,id分别找出来再得到用户。这样麻烦但是最简单
      

  6.   

    这和一个人有多个爱好是一样的啊
    也就是很明显的一对多关系
    用set就可以啊
    还说我没有看清楚题目
      

  7.   

    这个数据库本身的设计就有问题。如果是set,那么user应该用另外一个数据表来存储才对。
    id    kind    users
    --------------------
    4      3      8+34+21
    5      5      87+123+543
    Hibernate说到底也就是生成一个SQL语句。
    假设现在有这么个语句:select k.users from kind as k where id = 4
    那么获取的结果就是8+34+21
    也就是说,你这里只能直接获取users的String,然后作为String来处理。获取到users之后,通过String的方法拆分users,获取到users数组,然后再通过这个users数组来获取多个user对象。这是目前唯一的思路了。还是要说下……这是谁设计的数据库啊!这个结构太诡异了
      

  8.   

    弱弱的问一下 那个users里面是寸的多位id?应该是vachar2吧  觉得好别扭  没见过这么设计的