【发布时间】:2016-03-15 10:46:28
【问题描述】:
我有 3 个 POJO 类 - Link、LinkDetails 和 Tag。 Link和LinkDetails的关系——OneToOne,LinkDetails和Tag的关系——ManyToMany。
如何使用Jpa Criteria,查找具有指定标签名称的链接列表?
@Entity
public class Link extends AbstractEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String url;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private LinkDetails linkDetails;
}
@Entity
public class LinkDetails extends AbstractEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String description;
@JoinTable(name = "link_details_2_tag", joinColumns = { @JoinColumn(name = "link_details_id")}, inverseJoinColumns = { @JoinColumn(name = "tag_id") })
@ManyToMany(targetEntity = Tag.class, fetch = FetchType.LAZY)
private Set<Tag> tags = new TreeSet<Tag>();
}
@Entity
public class Tag extends AbstractEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String name;
}
【问题讨论】:
-
您的标准代码在哪里?这里有带有示例的文档docs.oracle.com/javaee/6/tutorial/doc/gjivm.html
-
我已经找到了解决方案。现在它将添加它
-
我已经标记了这个问题,因为它不会询问任何不包括在标准 api 的基本使用中的内容。该案例完全包含在文档中。它对其他用户没有用。
标签: java jpa many-to-many criteria-api one-to-one