JPA Коллекция Embeddables - PullRequest
       3

JPA Коллекция Embeddables

3 голосов
/ 05 июля 2010

Я пытаюсь сохранить коллекцию встраиваемых / сериализуемых объектов как одно из полей в моей сущности.Я видел уловку, когда вы заключаете список в другом сериализуемом классе и сохраняете все это как объект, но это похоже на хак.Насколько я могу судить, jpa способ сделать это с помощью аннотации @ElementCollection(targetClass=BlaBlaBla.class) в верхней части моего списка.Я аннотировал свой класс BlaBlaBla для возможности встраивания.

К сожалению, Appengine дает мне это исключение:

javax.persistence.PersistenceException: Class "data.Contact" has collection field "properties" and this has no mapping in the table for the element class "data.EntityReference" 
org.datanucleus.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java: 264) 
org.datanucleus.jpa.EntityTransactionImpl.commit(EntityTransactionImpl.java: 122) 
org.datanucleus.store.appengine.jpa.DatastoreEntityTransactionImpl.commit(DatastoreEntityTransactionImpl.java: 55) 

Действительно ли нужен взлом сериализуемого класса?Любая помощь будет горячей.

1 Ответ

2 голосов
/ 05 июля 2010

@ElementCollection была введена в JPA 2.0, в то время как GAE / J в настоящее время поддерживает только JPA 1.0 .Другими словами, @ElementCollection недоступно.

Так что либо используйте взлом сериализации (мне это не нравится), либо сопоставьте ассоциацию как OneToMany.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...