hibernate QuerySyntaxException - 字段未映射

hibernate QuerySyntaxException - Field is not mapped

我收到一个 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);

我想要 select 类别为 'x' 且产品类型为 'y' 的所有产品。

一个产品有一组类别,它也有一个类型,尽管一个类型可以适用于许多产品。

有人能看出我的查询有什么问题吗?

我猜你在 p.productType t 之前缺少 join 关键字。

所以,查询应该是:

select p from ProductEntity p join p.categories c join p.productType t where c.name = :category and t.name = :type

后期编辑:删除了 p.categories c

后的逗号