我正在使用 jpa-api 2.0-cr-1.(Maven)
我有 2 个类 Person 和 Tag。
每个人可以有多个标签,反之亦然。
现在我想检索属于所有给定标签的所有人。
例如
,person1 被标记为“tall”、“fat”和“bold”
person2 被标记为“tall”和“thin”
person3 被标记为“tall”和“bold”
现在的问题是,如果我查询 ["tall","bold"]
我应该得到 [person1,person3]
即我想检索属于所有给定标签的人。
public class Person {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "person_name")
private String personName;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "person_tag", joinColumns = { @JoinColumn(name = "person_id") }, inverseJoinColumns = @JoinColumn(name = "tag_id"))
private Set<Tag> tags;
}
public class Tag {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "person_tag", joinColumns = { @JoinColumn(name = "tag_id") }, inverseJoinColumns = @JoinColumn(name = "person_id"))
private Set<Person> persons;