簡體   English   中英

始終以一對多關系映射兩個方向

[英]map always both directions in one to many relationship

我對jpa有疑問。 例如表Post和表Files。 一個帖子可以關聯多個文件,而一個文件關聯一個帖子,因此我們具有一對多的關系。

我不確定是否應該創建OneToMany關系或ManyToOne或兩者。 例如,在帖子和文件示例中,我們需要詢問它是單向還是雙向的,是我們是否想知道帖子中包含哪些文件以及帖子中包含哪些文件,對嗎? 而且,如果兩者都是,那就是雙向關系,對嗎? 但是這兩個問題似乎非常相似,因此其正常答案是肯定的。 因此,它不是一個很好的實踐地圖,總是兩個方向嗎?

例如,始終映射兩個方向:

@Entity
public class Post{
@GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    @OneToMany(mappedBy="post")
    private List<Files> files= new ArrayList<>();
}

@Entity
public class File{
  @GeneratedValue(strategy = GenerationType.AUTO)
  private int id;

  @ManyToOne
  @JoinColumn(name="post_id")
  private Post post;  
}

這一切都取決於需求和數據模型。 使關系雙向化既不是好事,也不是壞事。

如果您希望用戶僅通過Post來訪問Files而不是使其成為單向的。 否則,如果您需要為用戶提供直接搜索文件的功能,並且用戶可以通過該功能看到帖子,則將其設為雙向。

如果是雙向關系,請確保創建一種便捷的方法來設置“ Files和“ Post之間的關系,並且不要忘記使用inverse屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM