【发布时间】:2020-04-03 18:03:06
【问题描述】:
我正在尝试使用数组运算符,例如 @>、<@ 或 $$。但是我得到了符号字符@
这是我的要求:
@Transactional
@Modifying
@Query(
"update EbOrder o set o.xEbEtablissement= :newEtablissement " +
"where o.xEbEtablissement = (select distinct u.xEbEtablissement" +
"from EbOrder o, EbUser u" +
"where regexp_split_to_array(:listLabels, ',') @> (regexp_split_to_array(o.listLabels,','))" +
"and u.ebUserNum= :userNum and o.xEbEtablissement = :oldEtablissement)"
)
public int updateOrderEtablissementAndLabels(
@Param("userNum") Integer userNum,
@Param("oldEtablissement") EbEtablissement oldEtablissement,
@Param("newEtablissement") EbEtablissement newEtablissement,
@Param("listLabels") String listLabels
);
错误是:
Caused by: org.hibernate.QueryException: unexpected char: '@' [update com.adias.mytowereasy.delivery.model.EbOrder o set o.xEbEtablissement= :newEtablissement where o.xEbEtablissement = (select distinct u.xEbEtablissementfrom EbOrder o, com.adias.mytowereasy.model.EbUser uwhere regexp_split_to_array(:listLabels, ',') @> (regexp_split_to_array(o.listLabels,','))and u.ebUserNum= :userNum and o.xEbEtablissement = :oldEtablissement)]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:235) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:143) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:119) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:153) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]
提前致谢
【问题讨论】:
标签: java spring-boot spring-data-jpa jpql