【问题标题】:How to create a separate table with two mapped fields?如何使用两个映射字段创建单独的表?
【发布时间】:2017-12-13 23:27:05
【问题描述】:

我有一个用户实体。用户将有一个朋友列表。我在为此映射列表创建批处理时遇到问题。我希望板子看起来像这样https://zapodaj.net/41cd4553308d3.png.html 第一列是用户 ID,第二列是朋友的 ID。我正在考虑这样做

@ElementCollection
@CollectionTable(
        name = "users_friends",
        joinColumns = @JoinColumn(name = "user_id", nullable = false, updatable = false)
)
@Column(name = "user_friend_id")
private Set<UserEntity> friends;

但是ElementCollection 没有映射实体,这种方式就消失了。

我怎样才能创建这样一个特殊的表来映射用户和朋友列表?

【问题讨论】:

    标签: java spring hibernate spring-mvc spring-boot


    【解决方案1】:

    这是一个多对多的关系。 JPA 支持他们没问题https://en.wikibooks.org/wiki/Java_Persistence/ManyToMany

    在你的情况下做

    @ManyToMany
    @JoinTable(
      name="users_friends",
      joinColumns=@JoinColumn(name="user_id", referencedColumnName="id"),
      inverseJoinColumns=@JoinColumn(name="user_friend_id", referencedColumnName="id"))
    private List<UserEntity> friends;
    

    应该做的伎俩

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-18
      • 2017-11-30
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2012-10-28
      相关资源
      最近更新 更多