利用数据库反向生成的项目,调用findByProerty(String propertyName,....)方法报错,搞了一个下午了,实在不知道怎么解决了,错误代码如下:
Exception in thread "main" javax.ejb.EJBException: EJB Exception: ; nested exception is: 
<openjpa-1.1.1-SNAPSHOT-r422266:891341 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter "select model from TbPubBmms model where model.FBmbmc= :propertyValue". Error message: No field named "FBmbmc" in class "class gj.wsms.entity.TbPubBmms".; nested exception is: <openjpa-1.1.1-SNAPSHOT-r422266:891341 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter "select model from TbPubBmms model where model.FBmbmc= :propertyValue". Error message: No field named "FBmbmc" in class "class gj.wsms.entity.TbPubBmms".
<openjpa-1.1.1-SNAPSHOT-r422266:891341 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter "select model from TbPubBmms model where model.FBmbmc= :propertyValue". Error message: No field named "FBmbmc" in class "class gj.wsms.entity.TbPubBmms".
at org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.parseException(AbstractExpressionBuilder.java:118)
at org.apache.openjpa.kernel.exps.AbstractExpressionBuilder.traversePath(AbstractExpressionBuilder.java:284)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getPath(JPQLExpressionBuilder.java:1380)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getPathOrConstant(JPQLExpressionBuilder.java:1335)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.eval(JPQLExpressionBuilder.java:878)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getValue(JPQLExpressionBuilder.java:1429)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getValue(JPQLExpressionBuilder.java:1415)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.eval(JPQLExpressionBuilder.java:771)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getExpression(JPQLExpressionBuilder.java:1406)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.eval(JPQLExpressionBuilder.java:721)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.evalWhereClause(JPQLExpressionBuilder.java:496)
at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getQueryExpressions(JPQLExpressionBuilder.java:273)
at org.apache.openjpa.kernel.jpql.JPQLParser.eval(JPQLParser.java:62)
at org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.<init>(ExpressionStoreQuery.java:661)
at org.apache.openjpa.kernel.ExpressionStoreQuery.newDataStoreExecutor(ExpressionStoreQuery.java:170)
at org.apache.openjpa.kernel.QueryImpl.createExecutor(QueryImpl.java:733)
at org.apache.openjpa.kernel.QueryImpl.compileForDataStore(QueryImpl.java:691)
at org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:673)
at org.apache.openjpa.kernel.QueryImpl.compile(QueryImpl.java:573)
at kodo.kernel.KodoQuery.compile(KodoQuery.java:75)
at org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:875)
at org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:865)
at org.apache.openjpa.persistence.EntityManagerImpl.createQuery(EntityManagerImpl.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:93)
at weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:91)
at weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:80)
at weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:26)
at $Proxy99.createQuery(Unknown Source)
at gj.wsms.impl.TbPubBmmsFacade.findByProperty(TbPubBmmsFacade.java:133)
at gj.wsms.impl.TbPubBmmsFacade.findByFBmbmc(TbPubBmmsFacade.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy109.findByFBmbmc(Unknown Source)
at gj.wsms.impl.TbPubBmmsFacade_617d4w_TbPubBmmsFacadeRemoteImpl.findByFBmbmc(TbPubBmmsFacade_617d4w_TbPubBmmsFacadeRemoteImpl.java:127)
at gj.wsms.impl.TbPubBmmsFacade_617d4w_TbPubBmmsFacadeRemoteImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

解决方案 »

  1.   

    findByProperty方法代码:
    public List<TbPubBmms> findByProperty(String propertyName,
    final Object value, final int... rowStartIdxAndCount) {
    LogUtil.log("finding TbPubBmms instance with property: " + propertyName
    + ", value: " + value, Level.INFO, null);
    try {
    final String queryString = "select model from TbPubBmms model where model."
    + propertyName + "= :propertyValue";
    Query query = entityManager.createQuery(queryString);
    query.setParameter("propertyValue", value);
    if (rowStartIdxAndCount != null && rowStartIdxAndCount.length > 0) {
    int rowStartIdx = Math.max(0, rowStartIdxAndCount[0]);
    if (rowStartIdx > 0) {
    query.setFirstResult(rowStartIdx);
    } if (rowStartIdxAndCount.length > 1) {
    int rowCount = Math.max(0, rowStartIdxAndCount[1]);
    if (rowCount > 0) {
    query.setMaxResults(rowCount);
    }
    }
    }
    return query.getResultList();
      

  2.   

    调用代码:
    List<TbPubBmms> bbbbmsfr1=bbmsfr.findByProperty("FBmbmc","wef",2);