hibernate QuerySyntaxException - 未映射字段

时间:2015-07-13 12:49:15

标签: hibernate hql

我收到一个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'的产品。

产品有一组类别,它也有一种类型,但类型可以适用于许多产品。

任何人都可以看到我的查询有什么问题吗?

1 个答案:

答案 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

之后删除逗号