我一直在关注此处的电子商务教程:http://netbeans.org/kb/docs/javaee/ecommerce/intro.html
项目代码回购here。
我遇到了一些我认为相关的问题:
1:尝试在管理员页面上查看客户的订单导致:
**WARNING**: EJB5184:A system exception occurred during an invocation on EJB OrderManager, method: public java.util.Map session.OrderManager.getOrderDetails(int)
**WARNING**: javax.ejb.EJBTransactionRolledbackException
**WARNING**: EJB5184:A system exception occurred during an invocation on EJB OrderedproductFacade, method: public java.util.List session.OrderedproductFacade.findByOrderId(java.lang.Object)
**WARNING**: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean
Caused by: java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of customerOrderId that does not exist in the query string SELECT o FROM Orderedproduct o WHERE o.orderedproductPK.custOrderid = :custOrderid.
2:尝试在管理页面中查看特定订单的详细信息,结果如下:
WARNING: StandardWrapperValve[AdminServlet]: PWC1406: Servlet.service() for servlet AdminServlet threw exception
Caused by: java.lang.IllegalArgumentException: You have attempted to set a parameter value using a name of customerOrderId that does not exist in the query string SELECT o FROM Orderedproduct o WHERE o.orderedproductPK.custOrderid = :custOrderid.
这两个问题都有' findByOrderId '方法的共同点,我不知道它有什么问题。
违规方法位于以下目录中:src / jsf_crud / src / java / session / OrderedProductFacade.java
(我会将其链接为超链接,但垃圾邮件防范措施会阻止我)
不确定最佳行动方案是什么,有什么建议吗?
答案 0 :(得分:0)
您的查询需要一个名为“custOrderid”的参数,而不是“customerOrderId”
更改查询或更改被调参数。
OrderedProduct类中的查询使用“customerOrderId”