Зимуйте и типы каскада JPA, когда использовать который и где

Я использую, Зимуют на проекте, и я совершенно смущен на том, когда использовать org.hibernate.annotations. CascadeType и когда использовать javax.persistence. Аннотации CascadeType.

Например, когда я должен использовать что-то вроде этого:

@OneToMany(fetch = FetchType.LAZY, cascade = javax.persistence.CascadeType.ALL)

против чего-то вроде этого:

@OneToMany(fetch = FetchType.LAZY)
@Cascade(org.hibernate.annotations.CascadeType.ALL)

Я также прочитал, что зимуют, проигнорирует определенные каскадные типы, которые находятся в одном к xxxx аннотациям. Кто-то может разъяснить мне?

8
добавлено отредактировано
Просмотры: 1
de
жаль! Мой мозг glitched, в то время как у меня было слишком много открытых счетов:)
добавлено автор Aleksander Blomskøld, источник

1 ответы

В целом вы найдете много примеров этих видов перекрывания, когда использование Зимует. Может быть несколько различных причин этого. Любой, который это по устаревшим причинам (Зимуют, создал аннотацию, прежде чем это было стандартизировано в JPA), или это - потому что Зимуют, поддерживает больше функциональности, чем, что позволяет стандарт JPA, или это - потому что они только отличаются немного по их семантике.

В этом случае, Зимуйте документация очень свободно от того, почему @Cascade существует, когда @OneToMany (каскад =...) является стандартом. Зимовать аннотация ( @Cascade ) дает вам еще много вариантов, чем стандартный JPA один, и у этого также есть немного отличающаяся семантика.

Необходимо всегда предпочитать использовать стандартные аннотации JPA, пока вам не нужно некоторое специальное предложение, Зимуют особенность/семантика.

4
добавлено
Спасибо, таким образом, это похоже на Зимовать аннотации, сделает те же самые вещи как аннотации JPA, так используйте тех сначала, затем добавьте их с Зимовать аннотациями в случае необходимости. Что относительно несовместимостей, описанных здесь: mkyong.com/hibernate/…
добавлено автор Jimmy Johnson, источник