проблема с открытым jpa - PullRequest
       14

проблема с открытым jpa

2 голосов
/ 03 января 2011

Я получаю следующую ошибку на консоли при использовании open jpa. Какова может быть возможная причина? Я не могу опубликовать код в соответствии с политикой моей компании.

[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)

Ответы [ 3 ]

8 голосов
/ 28 августа 2012

Я только что решил такую ​​ошибку. Ошибка была довольно вводящей в заблуждение. Проблема была в том, что я забыл поместить объект в файл persistence.xml.

3 голосов
/ 24 июня 2014

У меня была такая же проблема.

Сообщение не ясно!

Что решило мою проблему реализовал equals() и hashCode() в объекте и его pk объекте .

Также посмотрите, является ли class объявленным внутри persistence.xml

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 04 января 2011

Я собираюсь догадаться (лучше всего я могу обойтись без просмотра кода), что у вас есть связь с другим классом, который вы не смогли аннотировать с помощью @ManyToOne, @OneToMany или подобного.

...