cancel
Showing results for 
Search instead for 
Did you mean: 

EJB QL: Exception while parsing ... LIKE CONCAT(?1, '%')

Former Member
0 Kudos

Hi,

the following statement is EJB- 2.0 conform:

<ejb-ql>SELECT OBJECT(obj) FROM aTable AS obj WHERE obj.aColumn LIKE CONCAT(?1, '%')</ejb-ql>

While trying to deploy an EAR with the deployment tool, the following exception is thrown.

[code]

Cannot deploy application myCompany.com/myApp..

Reason: Incorrect QL query: SELECT OBJECT(obj) FROM aTable AS obj WHERE obj.aColumn LIKE

CONCAT(?1, '%'), errors: line 2: unexpected token: CONCAT

CONCAT(?1, '%')

^

.; nested exception is:

com.sap.engine.services.deploy.container.DeploymentException: <--Localization failed: ResourceBundle='com.sap.engine.services.deploy.DeployResourceBundle', ID='com.sap.engine.services.ejb.exceptions.deployment.EJBDeploymentException: Incorrect QL query: SELECT OBJECT(obj) FROM aTable AS obj WHERE obj.aColumn LIKE

CONCAT(?1, '%'), errors: line 2: unexpected token: CONCAT

CONCAT(?1, '%')

^

.

at com.sap.engine.services.ejb.deploy.ejbql.QLTranslator.prepareQLContext(QLTranslator.java:191)

at com.sap.engine.services.ejb.deploy.ejbql.QLTranslator.translateQuery(QLTranslator.java:103)

at com.sap.engine.services.ejb.deploy.ejbql.QLTranslator.translateAllQueries(QLTranslator.java:171)

at com.sap.engine.services.ejb.deploy.DeployAdmin.translateQL(DeployAdmin.java:1398)

at com.sap.engine.services.ejb.deploy.DeployAdmin.generate(DeployAdmin.java:254)

at com.sap.engine.services.ejb.EJBAdmin.deploy(EJBAdmin.java:2118)

at com.sap.engine.services.deploy.server.application.DeploymentTransaction.makeComponents(DeploymentTransaction.java:594)

at com.sap.engine.services.deploy.server.application.DeployUtilTransaction.commonBegin(DeployUtilTransaction.java:379)

at com.sap.engine.services.deploy.server.application.DeploymentTransaction.begin(DeploymentTransaction.java:296)

at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhasesOnOneServer(ApplicationTransaction.java:290)

at com.sap.engine.services.deploy.server.application.ApplicationTransaction.makeAllPhases(ApplicationTransaction.java:323)

at com.sap.engine.services.deploy.server.DeployServiceImpl.makeGlobalTransaction(DeployServiceImpl.java:3033)

at com.sap.engine.services.deploy.server.DeployServiceImpl.deploy(DeployServiceImpl.java:463)

at com.sap.engine.services.deploy.server.DeployServiceImplp4_Skel.dispatch(DeployServiceImplp4_Skel.java:1555)

at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:294)

at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:183)

at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:119)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)

at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)

[/code]

The above mentioned query is supposed to be parsable, it works quite fine on JBoss and WLS.

regards

Marcel

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Try replacing the query by

<ejb-ql>SELECT OBJECT(obj) FROM aTable obj WHERE obj.aColumn LIKE CONCAT(?1, '%')</ejb-ql>

Regards,

Uma

viliana
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Marcel,

The J2EE Engine in NW04 is fully EJB 2.0 compatible. Therefore, please check if your statement conforms to the EJB QL BNF syntax (chapter 11 of the EJB2.0 specification) and if this is the case (at least to me, your statement looks correct), open a CSS ticket.

Best regards,

Viliana

Message was edited by: Viliana Encheva

Former Member
0 Kudos

Hi Viliana,

> Hi Marcel,

> The J2EE Engine in NW04 is fully EJB 2.0 compatible.

> Therefore, please check if your statement conforms to

> the EJB QL BNF syntax (chapter 11 of the EJB2.0

> specification) and if this is the case (at least to

> me, your statement looks correct), open a CSS

> ticket.

I checked it against the EJB QL BNF and it is valid. What is a CSS ticket exactly?

best regards

Marcel

viliana
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Marcel,

CSS (also known as CSN, OSS, etc.) is the official SAP system for problem reporting. As your problem seems to require further investigation by the support, my recommendation is to open a CSS ticket and to describe there your scenario - the support will most probably require some additional logs, connection to your system, and so on. If you are a registered SAP customer, you should have access to the problem reporting system.

Best regards,

Viliana