我在映射单个实体的实例之间的关系时遇到问题。让我先给你JPA实体。
@Entity
@Table(name = "article")
public class Article {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "article", orphanRemoval = true)
private Collection<Keyword> keywords;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "article1", orphanRemoval = true)
private Collection<RelatedArticles> relatedArticles;
@Column(name = "content", nullable = false)
@Lob
private String content;
...
}
@Entity
@Table(name = "related_articles")
public class RelatedArticles {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@JoinColumn(name = "article1_id")
@ManyToOne(optional = false)
private Article article1;
@JoinColumn(name = "article2_id")
@ManyToOne(optional = false)
private Article article2;
private Float weightedJaccardIndex;
...
}
文章可以与RelatedArticle
实体实现的其他文章相关。该文章可由article1
或article2
引用。这意味着relatedArticles
中的集合Article
应包含RelatedArticle
的所有实例,其中ID与article1
或article2
匹配。
如何在我的Article
实体中映射单个的RelatedArticle集合,其中原点Article
是article1还是article2?
欢迎替代解决方案!