我有这个实体product
,当我有任何成员且产品只能在一个组或者一个产品中时,我想加入它以创建一个组并可以访问该组的其他成员没有,试图测试这个:
@Entity
@Table(name = "product")
public class Product {
@Id
@GeneratedValue
private Long id;
@Column
private String name;
@Column
private Long groupId;
@OneToMany
@JoinColumn(name = "groupId")
private List<Product> group;
group
的实体并使用它加入,但这是最好的方式,因为group
只会带有ID,我在这里寻找最佳实践,谢谢答案 0 :(得分:0)
无法在JPA中完成,因为JPA限制外键引用ID字段,而您希望groupId在组中指定其他唯一的内容。您可能会使组发生瞬态,而是通过查询从实体管理器中获取它:
@Transient
private List<Product> group;
public List<Product> getGroup(EntityManager em) {
if (group==null) {
group = em.createQuery("Select p from Product p where p.groupId = :groupId").setParameter("groupId", this.getGroupId()).getResultList();
}
return group;
}