【问题标题】:OneToMany composite primary key on same entity同一实体上的 OneToMany 复合主键
【发布时间】:2013-04-16 23:52:40
【问题描述】:

我想做以下事情:

@Entity
@Table(name="things")
public class Thing
{
    @Id
    private String id;

    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
    private Set<Thing> alreadyMatchedThings;

    //getters and setters
}

正如预期的那样,这会创建表 things_things,并且因为有时两列会重复相同的值,所以我真正想要的是将这两列(id 和外键)视为复合主键。

不出所料,我收到错误重复条目 '1165f4a1-c369-41ea-888c-0e3798deb04f' for key 'alreadyMatchedThings_id'

我怎样才能做到这一点?

【问题讨论】:

    标签: hibernate jpa annotations one-to-many


    【解决方案1】:

    好吧,我想我可以直接选择:

    @Entity
    @Table(name="things")
    public class Thing
    {
        @Id
        private String id;
    
        @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
        @JoinColumn(name="sourcethingid")
        private Set<MatchedThing> matchedThings;
    
        //getters and setters
    }
    

    在哪里

    @Entity
    public class MatchedThings
    {
        @Id
        private String id;
    
        private Thing matchedThing;
    
        //getters and setters
    }
    

    干得好,我。

    【讨论】:

      猜你喜欢
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多