Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA查询生成器_Java_Jpa_Query Builder - Fatal编程技术网

Java JPA查询生成器

Java JPA查询生成器,java,jpa,query-builder,Java,Jpa,Query Builder,请帮助创建查询! 我必须通过公共父对象按categoryId选择所有标记 下一步: @Table(name="ADVERT") @Entity(name="Advert") public class JpaAdvert implements Advert{ @Id @GeneratedValue private long id; @ManyToOne(fetch=FetchType.EAGER) @JoinColumn(name="category_id", referencedColumn

请帮助创建查询! 我必须通过公共父对象按categoryId选择所有标记

下一步:

@Table(name="ADVERT")
@Entity(name="Advert")
public class JpaAdvert implements Advert{

@Id
@GeneratedValue
private long id;

@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="category_id", referencedColumnName="id")
private JpaCategory category = new JpaCategory();

@ManyToMany(fetch=FetchType.EAGER, cascade={CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name="ADVERT_TAGS", joinColumns=@JoinColumn(name="advert_id",referencedColumnName="id"), inverseJoinColumns=@JoinColumn(name="tag_id", referencedColumnName="id"))
private Set<JpaTag> tags = new HashSet<JpaTag>();

...
以及类别对象:

@Table(name="CATEGORY")
@Entity(name="Category")
public class JpaCategory implements Category {

@Id
@GeneratedValue
private long id;

@Column(name="category_name")
private String categoryName;

.....
所以我需要按类别ID选择属于特定类别的所有标签。这对我来说有点复杂


请帮助任何人

您不需要为此使用标准。应使用条件根据可变搜索条件动态组合查询

以下是您可以使用的JPQL:

select distinct tag from Advert a
inner join a.tags tag
where a.category.id = :categoryId
如果你有双向联想,可能会感觉更自然。然后你可以使用

select tag from Tag tag where tag.advert.category.id = :categoryId

select tag from Tag tag where tag.advert.category.id = :categoryId
select tag from Tag tag
inner join tag.advert a
where a.category.id = :categoryId