0

我有两个名为 Batch 和 Position 的类,我遇到了这个错误

Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected end of subtree [from bean.Position p where :batch member of p.positionConstraint]

当调用 findByStudent 方法时。如果有帮助,我也在使用 JPA。非常感谢

public  class  Position {  
@ElementCollection
@LazyCollection(LazyCollectionOption.FALSE)  
@CollectionTable(name = "position_constraint")  
private  List<Batch> positionConstraint;  
}


public  class  Batch {
private  College college;

private  YearLevel yearLevel;

@Override
public  List<Position> findByStudent(StudentInformation student) {  
Batch batch = new  Batch(student.getCollege(), student.getYearLevel());  

Query query = getEntityManager().createQuery(
"from Position p where :batch member of p.positionConstraint").setParameter("batch", batch);  
return query.getResultList();  
}
4

2 回答 2

3

我认为您的字符串中有错误。它应该是: "from Position p where :batch member of p.positionConstraint"

于 2012-04-23T11:00:29.323 回答
0

您的示例结合了 Hibernate 3.6.8.Final 和数据库 H2 1.3.160 对我有用。还使用 JPA 等效查询:

select from Position p where :batch member of p.positionConstraint

根据您使用的 Hibernate 版本,您可能正面临这个错误:HHH-5209,它仍然是开放的。HHH-5173也提供了一些额外的解释。

于 2012-04-23T17:29:16.943 回答