介して2つのJPAエンティティを結合するとき、私は、2つのJPAエンティティ無効別名JPA 2.0 CriteriaBuilder
class A{
@OneToMany
Lis<B> entitiesB;
@Column("STATUS")
String status;// will sort based on this column
}
と
class B{
@ManyToOne
A entityA;
@Column("PROPERTY_ONE")
String propertyOne;
....
@Column("PROPERTY_M")
String propertyM;
....
}
を有します私は次の基準を持っています:
Join<A, B>root=criteriaBuilder
.createQuery(A.class)
.from(A.class)
.join("entitiesB");
CriteriaQuery<A> query = criteriaBuilder.createQuery(A.class);
query.select(query.from(A.class).join("entitiesB"))
.distinct(true)
.where(formWhereClause(filters))
.orderBy(formOrderByClause());
status
それは私に次のSQL A
エンティティ
criteriaBuilder.notEqual(root.get("A").get("status"), "SOME_STATUS_VALUE");
からプロパティ生成されています:
'org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.ast.QuerySyntaxException:
Invalid path generatedAlias2.A.status '
私はそれをどのように修正することができます:私は次の例外を得た
select distinct generatedAlias0 from A as generatedAlias1
inner join generatedAlias1.entitiesB as generatedAlias0
where (generatedAlias2.A.status<>:param0) and (generatedAlias2.propertyOne like :param1)
order by generatedAlias2.propertyM desc
に?私は永続化プロバイダとしてHibernate 4.3.5を使用しています。