Проблема в сохранении List <String>через JPA? - PullRequest
4 голосов
/ 09 сентября 2010

Я уже видел

Как сохранить свойство типа List в JPA?

и

Картасписок строк с аннотациями JPA / Hibernate

=======================================================================================

Я пытаюсь сохранить

List<String>

через JPA.Я узнал, что у JPA 1.0 нет никакого способа сохранить коллекцию не-сущностных классов, но JPA 2.0 включил аннотацию @CollectionOfElements.

Во-первых, я не уверен, какую реализацию JPA 2.0 использовать.Ранее я использовал toplink-essentials, но у него нет аннотации @CollectionOfElements.

Я скачал eclipse-ссылку, но не нашел внутри нее jar-файлов.

Так что мой вопроскакую реализацию JPA 2.0 использовать, которая предоставляет файлы jar, чтобы я мог включить эти jar в свой проект, как я это сделал для toplink-essentials.

Ответы [ 3 ]

4 голосов
/ 09 сентября 2010

Обратите внимание, что JPA 2.0 определяет @ElementCollection, а не @CollectionOfElements. Может использоваться для хранения списка. @CollectionOfElements - это расширение Hibernate.

В TopLink Essentials (JPA 1.0) вы все еще можете отобразить это, но для определения DirectCollectionMapping в коде потребуется использовать DescriptorCustomizer.

В EclipseLink 1.0 это было определено как @BasicCollection, а в JPA 2.0 и EclipseLink> = 1.2 это было определено как @ ElemenetCollection.

4 голосов
/ 09 сентября 2010

Во-первых, я не уверен, какую реализацию JPA 2.0 использовать.Ранее я использовал toplink-essentials, но у него нет аннотации @CollectionOfElements.

TopLink-Essential не является реализацией JPA 2.0.И, как отметил Джеймс, обратите внимание, что аннотация JPA 2.0 - @ElementCollection, @CollectionOfElements - специфическая аннотация Hibernate, которая в настоящее время устарела в пользу аннотации JPA.ссылку, но не нашел внутри нее jar-файлов.

Что вы скачали? Установочный Zip-архив EclipseLink 2.1.1 (28 МБ) , который можно получить со страницы загрузки , содержит файл jar all-in-one в каталоге jlib.

Поэтому мой вопрос заключается в том, какую реализацию JPA 2.0 использовать, которая предоставляет файлы jar, чтобы я мог включить эти jar в свой проект, как я это сделал для toplink-essentials.

Любая из них.Я бы лично использовал Hibernate 3.5.x или EcliseLink 2.x, которые вы можете получить соответственно от

Ссылка

  • Спецификация JPA 2.0
    • Раздел 11.1.12 «Аннотация ElementCollection»
1 голос
/ 21 октября 2010

Просто используйте ArrayList вместо List. Я попробовал

@Entity
public class Orar implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private ArrayList<String> lectii;

и все работает;)

...