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
后的逗号
我收到一个 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