有3個實體類 - Item,Seller,Comment。其中,共享模型的休眠映射
Item 1 --- * Comment, and Seller 1 --- * Comment
如何在不添加附加表的情況下使用JPA/Hibernate註記映射類?
中的表結構是:
Item(id, description)
Seller(id, name)
Comment(id, entityType, entityKey, message)
其中的EntityType是ITEM或賣方,的EntityKey要麼item.id或seller.id。
現在,我有類似如下:
更新:一對多方現在是確定的,仍然需要弄清楚如何使它工作在多對一的一面。
@Entity
@Table(name = "item_tb")
public class Item {
@Id
@GeneratedValue
private Long id;
@Column(name = "description")
private String description;
*** @OneToMany
*** @JoinColumn(name = "entityKey")
*** @Where(clause = "entityType = 'ITEM'")
private List<Comment> comments;
}
@Entity
@Table(name = "seller_tb")
public class Seller {
@Id
@GeneratedValue
private Long id;
@Column(name = "name")
private String name;
*** @OneToMany
*** @JoinColumn(name = "entityKey")
*** @Where(clause = "entityType = 'SELLER'")
private List<Comment> comments;
}
@Entity
@Table(name = "comment_tb")
public class Comment {
@Id
@GeneratedValue
private Long id;
@Column(name = "entityType")
private String entityType;
@Column(name = "entityKey")
private Integer entityKey;
@Column(name = "message")
private String message;
@ManyToOne
...
private Item item;
@ManyToOne
...
private Seller seller;
}
非常感謝,我可以使用[1]解決部分問題。由於有很多實體有評論,所以不能添加類。 –