akshay
akshay

Reputation: 755

problem with open jpa

I am getting following error on console when using open jpa.What may be the possible cause?I cant post the code as its against my company policies.

[12/31/10 14:54:13:279 GMT+05:30] 00000063 MetaData      W   CWWJP9991W: openjpa.MetaData: Warn: OpenJPA cannot map field "abc.xyz" efficiently.  It is of an unsupported type. The field value will be serialized to a BLOB by default.
[12/31/10 14:54:13:295 GMT+05:30] 00000063 MetaData      W   CWWJP9991W: openjpa.MetaData: Warn: The class "pqr.xyz" listed in the openjpa.MetaDataFactory configuration property could not be loaded; ignoring.
[12/31/10 14:54:13:295 GMT+05:30] 00000063 MetaData      W   CWWJP9991W: openjpa.MetaData: Warn: OpenJPA cannot map field "pqr.xyz" efficiently.  It is of an unsupported type. The field value will be serialized to a BLOB by default.

 Failed to create Bundle in DB:
                                 <openjpa-1.2.2-SNAPSHOT-r422266:778978M-OPENJPA-975 fatal user error> org.apache.openjpa.persistence.ArgumentException: Field "abc.xyz" cannot declare that it is mapped by another field. Its mapping strategy (org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy) does not support mapping by another field.
    at org.apache.openjpa.jdbc.meta.strats.AbstractFieldStrategy.assertNotMappedBy(AbstractFieldStrategy.java:59)
    at org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.map(HandlerFieldStrategy.java:71)
    at org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:121)
    at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:80)
    at org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.java:454)
    at org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:419)
    at org.apache.openjpa.jdbc.meta.ClassMapping.resolveNonRelationMappings(ClassMapping.java:879)
    at org.apache.openjpa.jdbc.meta.MappingRepository.prepareMapping(MappingRepository.java:339)
    at org.apache.openjpa.meta.MetaDataRepository.preMapping(MetaDataRepository.java:662)
    at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:549)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:363)
    at org.apache.openjpa.kernel.QueryImpl.classForName(QueryImpl.java:1569)
    at org.apache.openjpa.kernel.ExpressionStoreQuery$1.classForName(ExpressionStoreQuery.java:108)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:168)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:139)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:225)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:195)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java:188)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$600(JPQLExpressionBuilder.java:69)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:1756)
    at org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:56)
    at org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:153)
    at org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:658)
    at org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:639)
    at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:605)
    at org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:667)
    at org.apache.openjpa.kernel.QueryImpl.compile(QueryImpl.java:574)
    at com.xyz.ws.persistence.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:105)
    at com.xyz.ws.persistence.EntityManagerImpl.createNamedQuery(EntityManagerImpl.java:37)
    at com.xyz.ws.jpa.management.JPATxEmInvocation.createNamedQuery(JPATxEmInvocation.java:116)
    at com.xyz.ws.jpa.management.JPAEntityManager.createNamedQuery(JPAEntityManager.java:302)

Upvotes: 2

Views: 10301

Answers (3)

Linh Nguyen
Linh Nguyen

Reputation: 659

I just solved an error like this. The error was quite misleading. The problem was I forgot to put the entity into the persistence.xml file.

Upvotes: 9

Eduardo Briguenti Vieira
Eduardo Briguenti Vieira

Reputation: 4599

I was having the same problem.

The message is not clear!

What solved my problem was implementing equals() and hashCode() in the entity object and its pk object.

Also see if the class is declared inside the persistence.xml

Hope it helps someone.

Upvotes: 3

Dick Chesterwood
Dick Chesterwood

Reputation: 2659

I'm going to guess (best I can do without seeing code) that you have a relationship to another class that you have failed to annotate with @ManyToOne, @OneToMany or similar.

Upvotes: 0

Related Questions