EJB Entity Bean CMP 1.1中ejb-ql不通过,初学ing,帮忙看下吧

rleon 2007-06-14 10:33:43
ENV:
JDK 1.6.0_U1, jboss 4.20 GA, MySql 5.0, MySql Connector/J 3.0

database name:
test

jdbc connect string:
jdbc:mysql://localhost:3306/test

table name:
t_book

table desc:
bookid String/VARCHAR250
bookname String/VARCHAR250
bookprice double/DOUBLE


EJB Home:
public interface Cmp1BookHome extends EJBHome {
...
public Collection findInPrice(double lowerLimitPrice, double upperLimitPrice) throws FinderException, RemoteException;
}

ejb-jar.xml:
<entity>
<display-name>Cmp1Book</display-name>
<ejb-name>Cmp1Book</ejb-name>
...
<query>
<query-method>
<method-name>findInPrice</method-name>
<method-params>
<method-param>double</method-param>
<method-param>double</method-param>
</method-params>
</query-method>
<ejb-ql>
[CDATA[SELECT bookid FROM t_book WHERE bookprice BETWEEN ?1 AND ?2]]
</ejb-ql>
</query>
</entity>

deploy到jboss后总报如下错误:
10:13:14,000 ERROR [Cmp1Book#findInPrice] Encountered "t_book" at line 1, column 27.
Was expecting one of:
"IN" ...
"ORDER" ...
<ABSTRACT_SCHEMA> ...

org.jboss.ejb.plugins.cmp.ejbql.ParseException: Encountered "t_book" at line 1, column 27.
Was expecting one of:
"IN" ...
"ORDER" ...
<ABSTRACT_SCHEMA> ...

...

10:13:14,046 WARN [ServiceController] Problem starting service jboss.j2ee:service=EjbModule,module=LearnEJB.jar
org.jboss.deployment.DeploymentException: Error compiling EJB-QL statement for EJB 'Cmp1Book': [CDATA[SELECT bookid FROM t_book WHERE bookprice BETWEEN ?1 AND ?2]]; - nested throwable: (org.jboss.ejb.plugins.cmp.ejbql.ParseException: Encountered "t_book" at line 1, column 27.
Was expecting one of:
"IN" ...
"ORDER" ...
<ABSTRACT_SCHEMA> ...
)

...

10:13:15,250 ERROR [URLDeploymentScanner] Incomplete Deployment listing:

--- MBeans waiting for other MBeans ---
ObjectName: jboss.j2ee:service=EjbModule,module=LearnEJB.jar
State: FAILED
Reason: org.jboss.deployment.DeploymentException: Error compiling EJB-QL statement for EJB 'Cmp1Book': [CDATA[SELECT bookid FROM t_book WHERE bookprice BETWEEN ?1 AND ?2]]; - nested throwable: (org.jboss.ejb.plugins.cmp.ejbql.ParseException: Encountered "t_book" at line 1, column 27.
Was expecting one of:
"IN" ...
"ORDER" ...
<ABSTRACT_SCHEMA> ...
)

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.j2ee:service=EjbModule,module=LearnEJB.jar
State: FAILED
Reason: org.jboss.deployment.DeploymentException: Error compiling EJB-QL statement for EJB 'Cmp1Book': [CDATA[SELECT bookid FROM t_book WHERE bookprice BETWEEN ?1 AND ?2]]; - nested throwable: (org.jboss.ejb.plugins.cmp.ejbql.ParseException: Encountered "t_book" at line 1, column 27.
Was expecting one of:
"IN" ...
"ORDER" ...
<ABSTRACT_SCHEMA> ...
)


有哪位有经验的达人帮我看一下吗,已经郁闷了一下午了
...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunnyxu999 2009-12-26
  • 打赏
  • 举报
回复
没人甩你o~~
rleon 2007-06-14
  • 打赏
  • 举报
回复
找到答案了,ejb-jar.xml要加入<abstract-schema-name>t_book</abstract-schema-name>
也就是说要和FROM clause的表名相对应
rleon 2007-06-14
  • 打赏
  • 举报
回复
老是报:Encountered "t_book" at line 1, column 27. 不知道什么意思。

jbosscmp-jdbc.xml如下:
<jbosscmp-jdbc>
<defaults>
<!-- application-wide CMP defaults -->
<datasource>java:MySqlDS</datasource>
<datasource-mapping>mySQL</datasource-mapping>
<create-table>true</create-table>
<remove-table>false</remove-table>
</defaults>
...
</jbosscmp-jdbc>

因为自动建表,我已经在mysql中看到建立好的table,所以连接不是问题
rleon 2007-06-14
  • 打赏
  • 举报
回复
来个人,加分结贴了呀

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧