EJB QL problem
lumin Feb 18, 2003 7:38 AMHi everyone,
I encountered some problems by deploying finder methods which uses BigDecimal as input parameter. Querying Strings works without problems. I also tried to warp my query within a CDATA tag, but this has no effects. I always get the following error msg:
13:47:15,269 WARN [ServiceController] Problem starting service jboss.j2ee:jndiName=Registration,service=EJB
org.jboss.deployment.DeploymentException: Error compiling ejbql; - nested throwable: (org.jboss.ejb.plugins.cmp.ejbql.ParseEx
ception: Encountered "o.userid" at line 1, column 46.
Was expecting one of:
"NOT" ...
"(" ...
<COLLECTION_VALUED_PATH> ...
<STRING_VALUED_PATH> ...
"CONCAT" ...
My ejb-jar.xml looks like this:
<display-name>Registration</display-name>
<ejb-name>Registration</ejb-name>
<local-home>upgjboss.RegistrationHome</local-home>
upgjboss.Registration
<ejb-class>upgjboss.RegistrationBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.math.BigDecimal</prim-key-class>
False
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Registration</abstract-schema-name>
<cmp-field>
<field-name>regid</field-name>
</cmp-field>
<cmp-field>
<field-name>userid</field-name>
</cmp-field>
<cmp-field>
<field-name>ppersons</field-name>
</cmp-field>
<cmp-field>
<field-name>remark</field-name>
</cmp-field>
<cmp-field>
<field-name>valid</field-name>
</cmp-field>
<primkey-field>regid</primkey-field>
<query-method>
<method-name>findAll</method-name>
<method-params />
</query-method>
<ejb-ql>SELECT Object(o) FROM Registration o</ejb-ql>
<query-method>
<method-name>findByRemark</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>SELECT OBJECT(o) FROM Registration o WHERE o.remark = ?1</ejb-ql>
<query-method>
<method-name>findByUserId</method-name>
<method-params>
<method-param>java.math.BigDecimal</method-param>
</method-params>
</query-method>
<ejb-ql>SELECT OBJECT(o) FROM Registration o WHERE o.userid = ?1</ejb-ql>
The string query works fine but findByUserId always produces the mentioned error.
Regards
lumin