Hi,
in the Spring Data Forum we are discussing a problem which might be a OpenJPA
Bug. Please visit this thread as it contains all the stuff one needs to check
this issue:
http://forum.springsource.org/showthread.php?113890-issue-with-Like-Or-and-nested-Properties-in-SpringData-JPA
I am coding against OpenJPA 2.1.0 and the problem arises when JpaQueryBuilder
will create a Like Predicate.
Little stack trace also here ;-)
Caused by: java.lang.IllegalArgumentException: Attribute "pickBarcode.orderId"
of any not found in de.logentis.bwh.model.AlphaScan
at
org.apache.openjpa.persistence.meta.AbstractManagedType.notFoundException(AbstractManagedType.java:734)
at
org.apache.openjpa.persistence.meta.AbstractManagedType.getAttribute(AbstractManagedType.java:237)
at
org.apache.openjpa.persistence.meta.AbstractManagedType.getAttribute(AbstractManagedType.java:461)
at
org.apache.openjpa.persistence.criteria.PathImpl.get(PathImpl.java:270)
at
org.springframework.data.jpa.repository.query.JpaQueryCreator.toPredicate(JpaQueryCreator.java:204)
at
org.springframework.data.jpa.repository.query.JpaQueryCreator.create(JpaQueryCreator.java:102)
at
org.springframework.data.jpa.repository.query.JpaQueryCreator.create(JpaQueryCreator.java:51)
at
org.springframework.data.repository.query.parser.AbstractQueryCreator.createCriteria(AbstractQueryCreator.java:90)
at
org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:68)
at
org.springframework.data.jpa.repository.query.PartTreeJpaQuery.createCountQuery(PartTreeJpaQuery.java:101)
at
org.springframework.data.jpa.repository.query.JpaQueryExecution$PagedExecution.doExecute(JpaQueryExecution.java:106)
at
org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:55)
at
org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:100)
at
org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:89)
at
org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:336)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
... 30 more
pickBarcode is an embedded attribute in AlphaScan and orderId is an attribute
in PickBarcode. When issueing the same query without like, everything is fine.
Spring Data JPA abstracts developers form creating the queries themselves and
instead we only need to create an interface with a method name which exposes
the query with some special syntax.
THanks for input on this. I could easily debug this stuff but i really dont
want to dig through OpenJPA internals. But if i can help by providing some
variables values or something, i am willing to help solving this.
---
regards
Marc Logemann
http://www.logemann.org
http://www.logentis.de