谓词“无效路径:'generatedAlias1.geometrie'”条件生成器的java问题
大家好,我有一个令人不安的问题在我的问题,我已经看了很多问题,但没有真正接近我的问题!我想通过使用谓词来限制请求,以找到我正在寻找的好区域!为了做到这一点,我有这个区域的几何形状和他的代码。所以我使用谓词来限制搜索
我的公共课
public Commune getCloserCommuneByGeometry(Geometry geometrieOuvrage, String codeZone) {
CriteriaBuilder qb = getCriteriaBuilder();
CriteriaQuery<Commune> cqCommune = qb.createQuery(Commune.class);
CriteriaQuery<Long> cqLong = qb.createQuery(Long.class);
CriteriaQuery<ZoneSas> query = qb.createQuery(ZoneSas.class);
Root<Commune> communeRoot = cqCommune.from(Commune.class);
Root<ZoneSas> rootZone = query.from(ZoneSas.class);
// subquery buffer
Subquery<Geometry> bufferQuery = cqLong.subquery(Geometry.class);
Root<Buffer> rootB = bufferQuery.from(Buffer.class);
bufferQuery.select(rootB.get(Buffer_.geom))
.where(qb.equal(rootB.get(Buffer_.id), ConstantesBuffer.BUFFER_WORK));
// To know if the ouvrage intersects the communes buffer on 500 meter
Predicate intersectionGeometrie = new WithinPredicate((CriteriaBuilderImpl) qb, geometrieOuvrage, bufferQuery,
500.0, true);
// To know if geometrie is inside the geometry of a commune
Predicate withinGeometrie = new WithinPredicate((CriteriaBuilderImpl) qb,
communeRoot.get(Commune_.geometrie), geometrieOuvrage, 0.0, true);
// MY PREDICATES WHERE THE PROBLEM IS
Predicate predicateOuvrage = qb.equal(rootZone.get(ZoneSas_.geometrie), geometrieOuvrage);
Predicate predicateCode = qb.equal(rootZone.get(ZoneSas_.codeZone), codeZone);
cqCommune.select(communeRoot).distinct(true);
cqCommune.where(qb.and(predicateOuvrage, predicateCode ,intersectionGeometrie, withinGeometrie));
return getSingleResult(cqCommune);
}
但每次我尝试这个请求时,它都会抛出这个错误=>
11:25:52044错误[]组织。冬眠hql。内部的阿斯特。ErrorCounter-无效路径:“GenerateDias1”。几何图形' 11:25:52044错误[]组织。冬眠hql。内部的阿斯特。ErrorCounter-无效路径:“GenerateDias1”。几何图形' 组织。冬眠hql。内部的阿斯特。InvalidPathException:无效路径:“generatedAlias1”。几何图形“
不管我把predicateCode或PredicateOutRage放在前面还是后面。。。我真的被堵住了,我不知道问题出在哪里
共 (0) 个答案