我收到一个QuerySyntaxException尝试对2个表运行HQL查询:
select p from ProductEntity p join p.categories c, p.productType t where c.name = :category and t.name = :type
例外是:
org.hibernate.hql.internal.ast.QuerySyntaxException: p.productType is not mapped
我的实体已设置好所以我认为所有内容都已映射:
Product Entity:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PRODUCT_TYPE_ID", nullable = false)
private ProductTypeEntity productType;
Product Type Entity:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "productType")
private Set<ProductEntity> products = new HashSet<ProductEntity>(0);
我想选择所有类别为'x'且产品类型为'y'的产品。
产品有一组类别,它也有一种类型,但类型可以适用于许多产品。
任何人都可以看到我的查询有什么问题吗?
答案 0 :(得分:2)
我猜您在join
之前缺少p.productType t
个关键字。
所以,查询应该是:
select p from ProductEntity p join p.categories c join p.productType t where c.name = :category and t.name = :type
稍后编辑:在p.categories c