小弟有好几个业务表 A,B,C 它们都有附件,我想把它们的附件都统一放在APPEND这个表里,就成了A,B,C 都和 APPEND 是 一对多的关系,这种映射怎么配置啊,普通配置肯定会出现相同外键,取数据的时候A可能吧B的附件也
取出来了。这个要怎么解决呢,难倒每个业务表都要建立每个附件表吗

解决方案 »

  1.   

    可以的。APPEND 中引用 a b c 表的主键作为外键。
      

  2.   

    A,B,C表不一样,可能会出现相同的主键啊,这样就乱了
      

  3.   

    可以在APPEND 建个复合主键来区别吗
      

  4.   

    APPEND  表在添加一个字段来区别 a b c表。结构类似ID    objtype        objid       附件
    1   a b c的类型     a b c的ID     ...
      

  5.   

    一个语句就能搞定,还嫌麻烦...
    另外,将a b c 表的 id和type 都设为主键,应该可以通过这两个字段来建立到APPEND  的一对多关联。JoinColumn 设置这两个字段试试看。
      

  6.   

    还有种做发,在entity层去添加过滤。相当于数据库是一张表,但这张表对应3个APPEND类。这样就达到了在hibernate层的分离。过滤器注释怎么写去看下相关的手册吧。我上面说那种方法可能不行,我刚想在JoinColumn里面设置两个字段报错了。