Login
JPA: Embeddable и OneToMany
243
13.03.14 10:51
Есть класс:
@Embeddable
public class E implements Serializable {
private static final long serialVersionUID = 1L;
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.REFRESH, CascadeType.PERSIST }, orphanRemoval = false)
@JoinTable(name = "T")
private Set<A> a = new HashSet<A>();
}
Используется следующим образом:
@Entity(name = "B")
@Table(name = "B")
public class B extends V {
private static final long serialVersionUID = 1L;
@ElementCollection
@CollectionTable(name = "D")
private Set<E> berichtDetails = new HashSet<E>();
}
При генерировании схемы выдает ConcurrentModificationException.
Получается, что нельзя использовать OneToMany с Embeddable и нужно сделать Entity?
NEW 13.03.14 15:43
in Antwort Simple 13.03.14 10:51
Смотри JPA спек:
2.6 Collections of Embeddable Classes and Basic Types
A persistent field or property of an entity or embeddable class may correspond to a collection of a basic type or embeddable class (“element collection”). Such a collection, when specified as such by the ElementCollection annotation, is mapped by means of a collection table, as defined in Section 11.1.8. If the ElementCollection annotation (or XML equivalent) is not specified for the collection-valued field or property, the rules of Section 2.8 apply.
An embeddable class (including an embeddable class within another embeddable class) that is contained within an element collection must not contain an element collection, nor may it contain a relationship to an entity other than a many-to-one or one-to-one relationship. The embeddable class must be on the owning side of such a relationship and the relationship must be mapped by a foreign key mapping. (See Section 2.9.)
2.6 Collections of Embeddable Classes and Basic Types
A persistent field or property of an entity or embeddable class may correspond to a collection of a basic type or embeddable class (“element collection”). Such a collection, when specified as such by the ElementCollection annotation, is mapped by means of a collection table, as defined in Section 11.1.8. If the ElementCollection annotation (or XML equivalent) is not specified for the collection-valued field or property, the rules of Section 2.8 apply.
An embeddable class (including an embeddable class within another embeddable class) that is contained within an element collection must not contain an element collection, nor may it contain a relationship to an entity other than a many-to-one or one-to-one relationship. The embeddable class must be on the owning side of such a relationship and the relationship must be mapped by a foreign key mapping. (See Section 2.9.)
NEW 13.03.14 15:46
in Antwort scorpi_ 13.03.14 15:43
Спасибо. Все-таки спеки - это лучший источник :)
NEW 14.03.14 11:02
in Antwort scorpi_ 14.03.14 10:58
Нет, в душе я по-прежнему с ним :) Особенно бесят идиотские шаблоны в жабе.
Был вариант полгода назад соскочить в Buhl Data, но почему-то остался, не хотел подводить шефа с проектом. Проект заканчивается скоро, тогда уже можно подумать о возвращении.
Был вариант полгода назад соскочить в Buhl Data, но почему-то остался, не хотел подводить шефа с проектом. Проект заканчивается скоро, тогда уже можно подумать о возвращении.
NEW 14.03.14 11:17
in Antwort Simple 14.03.14 11:02, Zuletzt geändert 14.03.14 11:18 (scorpi_)
Это да, о generic'ах там можно забыть - все ограничивается интерфейсами. Там надо осваивать другие принципы кодогенерации, типа аспектов. Зато в плюсах аннотаций нет. Полезная штука.
PS frei nach Dilbert: it stings only for a couples of years ))
PS frei nach Dilbert: it stings only for a couples of years ))
NEW 14.03.14 11:18
in Antwort scorpi_ 14.03.14 11:17
Это я уже оценил.
Но шаблоны уже тут используются, в результате куча копипейста. Я уже смирился, мне с ними детей не растить.
Но шаблоны уже тут используются, в результате куча копипейста. Я уже смирился, мне с ними детей не растить.
NEW 14.03.14 14:01
in Antwort Simple 14.03.14 11:18
Честно говоря, я теперь уже думаю, что плюсы безнадежно устарели. В наше время рулят dependency injection и garbage collection.
NEW 14.03.14 14:04
in Antwort scorpi_ 14.03.14 14:01
NEW 14.03.14 14:34
in Antwort Simple 14.03.14 14:04
Шарп как язык приятнее, конечно, зато в джаве либы продвинутее и их больше. Спринг рулит. В принципе я привык уже.
NEW 14.03.14 14:41
in Antwort scorpi_ 14.03.14 14:34
Чую, пришла пора заняться самообразованием. По спрингу че-нить толковое можешь посоветовать?
NEW 14.03.14 15:08
in Antwort Simple 14.03.14 14:41
Да вроде онлайн-доки там и так отличные. Я особо больше ничего не юзал, ну гуглил там неясные вопросы. Я вообще тоже слегка подзапустил образование, читаю все больше медицину, физиологию, спортнауку.
NEW 14.03.14 17:25
in Antwort scorpi_ 14.03.14 15:08
Онлайн доки были в спринге отличные. Теперь как в эклипсе - "чтобы создать бин вызовите метод createBean(String loc, String par, String name, int count, int number, boolean isMaster)".
И можно гадать до опупения что же такое isMaster и чем отличается count от numberи ваще - зачем они?
Мне лично Spring in Action понравилось. Со 2-м спрингом неплохо помогла.
И можно гадать до опупения что же такое isMaster и чем отличается count от numberи ваще - зачем они?
Мне лично Spring in Action понравилось. Со 2-м спрингом неплохо помогла.
NEW 14.03.14 18:45
in Antwort MrSanders 14.03.14 17:25
Ты о джавадоках что ли? Я о документации говорю. Не о джавадоках.
NEW 14.03.14 21:55
in Antwort MrSanders 14.03.14 17:25
не-не, именно о документации доступной на springframework.net. Вернее о их примерах и туториалах.
Раньше у них были отличные туториалы, в которых очень подробно все описывалось. А потом они понарасширяли спринг дополнениями, сделали все "красиво"... Не так давно пришлось разбираться почему не работает аутентификация на веб-сервисе сделанном на спринге, так как всегда - пока не почитаешь исходники ничерта не поймешь.
Раньше у них были отличные туториалы, в которых очень подробно все описывалось. А потом они понарасширяли спринг дополнениями, сделали все "красиво"... Не так давно пришлось разбираться почему не работает аутентификация на веб-сервисе сделанном на спринге, так как всегда - пока не почитаешь исходники ничерта не поймешь.
NEW 14.03.14 22:36
in Antwort MrSanders 14.03.14 21:55
Ну секьюрити это вообще отдельный проект. Там не все очевидно, да. В прошедшем году в двух проектах нестандартное имплементировал - пришлось порыться.