java里<link>_java – 在Eclipselink中不起作用的函数和操作...

我有这个问题,REPLACE功能不适用于eclipselink版本2.5.2.

这是我的代码:

String sSql = " SELECT e FROM br.com.megasoft.protocolo.entity.Assunto e WHERE ( REPLACE(REPLACE(REPLACE( UPPER(e.titulo), '/', ''), '-', ''), '.', '') LIKE UPPER('A') )";

TypedQuery> query = getEntityManager().createQuery(sSql, Class.forName(this.tabela));

第二个参数的值为:class br.com.megasoft.protocolo.entity.Assunto

它给出了这个例外:

Caused by: Exception [EclipseLink-0] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.JPQLException

Exception Description: Syntax error parsing [ FROM br.com.megasoft.protocolo.entity.Assunto e WHERE ( REPLACE(REPLACE(REPLACE( UPPER(e.titulo), '/', ''), '-', ''), '.', '') LIKE UPPER( :valorPesq10) ) ].

[54, 150] The expression is not a valid conditional expression.

at org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildException(HermesParser.java:155)

at org.eclipse.persistence.internal.jpa.jpql.HermesParser.validate(HermesParser.java:334)

at org.eclipse.persistence.internal.jpa.jpql.HermesParser.populateQueryImp(HermesParser.java:278)

at org.eclipse.persistence.internal.jpa.jpql.HermesParser.buildQuery(HermesParser.java:163)

at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:142)

at org.eclipse.persistence.internal.jpa.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:116)

at org.eclipse.persistence.internal.jpa.EJBQueryImpl.(EJBQueryImpl.java:102)

at org.eclipse.persistence.internal.jpa.EJBQueryImpl.(EJBQueryImpl.java:86)

at org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1603)

... 50 more

当我使用Hibernate时它完全正常.

当我运行简单的SQL,没有REPLACE,它工作正常.

Obs:Eclipselink 2.5.2正在使用JPA 2.1.我正在使用Tomcat8,Eclipse Kepler.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值