【问题标题】:Hibernate many to many mapping the same entity休眠多对多映射同一实体
【发布时间】:2013-02-21 09:35:48
【问题描述】:

当我映射相同的实体时,就像这里回答的那样:

Hibernate many-to-many association with the same entity

在“tbl_friends”表中,我有相同含义的行。例如,我有 id=1 的用户和 id=2 的用户。在“tbl_friends”表中,当他们作为朋友链接时,我有两行

1-2
2-1

是否有可能使用 Hibernate 或 JPA 注释以某种方式在一行(1-2 或 2-1)中建立这种关系?

【问题讨论】:

    标签: hibernate jpa many-to-many


    【解决方案1】:

    不,您不能,因为这两行的含义不同。一行是说 PersonA 是 PersonB 的朋友,另一行是 PersonB 是 PersonA 的朋友。从功能上讲,在您的示例中,这两个关系可能具有相同的含义,但在数据库级别并非如此(友谊并不总是相互的……这很可悲)。您唯一能做的就是将其隐藏在您的 API 中:

    public class Person {
    
       private Set<Person> friends = new HashSet<Person>();
    
       public void addFriend(Person person) {
          friends.add(person);
          person.getFriends().add(this);
       }
    }
    

    【讨论】:

    • 如果有数百个数据,getFriends() 会花费太多时间。我们如何优化它?
    猜你喜欢
    • 2021-11-11
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多