2012-07-27 2 views
2

Hibernate Версия: 4.0.1.Final/JPAHibernate/JPA: Неожиданное каскад на слиянии

Здравствуйте,

я хочу, чтобы объединить удаленные таблицы. После выполнения entityManager.merge() все дочерние таблицы выбираются из базы данных.

Дочерние таблицы аннотированный в parentTable с:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "parentTable") 

Там нет каскада аннотаций. Я не хочу каскадировать дочерние таблицы при слиянии. Как отключить каскадирование при слиянии?

@Transactional 
public void save() { 
    entityManager.merge(parentTable); //cascades child´s here 
} 

Только дочерние таблицы повторно выбраны, которые были выбраны ранее.

Благодаря tak3shi

+0

Вы нашли какое-то окончательное решение для блокировки слияния каскада? –

ответ

0

Все каскады по умолчанию отключены. Если вы не хотите каскадировать что-либо, просто не добавляйте атрибут каскада в аннотацию @OneToMany.

С другой стороны, если вы хотите, каскадные все остальное, кроме слияния, использования следующим:

@OneToMany(fetch = FetchType.LAZY, 
      mappedBy = "parentTable" 
      cascade = {CascadeType.DETACH, CascadeType.PERSIST, 
         CascadeType.REFRESH, CascadeType.REMOVE}) 

Может быть, есть какая-то другая проблема, которая не имеет ничего общего с операцией каскадных слияния. В этом случае показывать объекты и как код, который создает и объединяет их, будет полезен.

+0

Я не использую каскад. Я также попытался установить только CascaType.DETACH, но он все еще каскадирует при слиянии. – tak3shi

+0

@Transactional public void save() { entityManager.merge(parentTable); //cascades child´s here } tak3shi

+0

Что заставляет вас думать, что в результате этой операции происходит слияние? Какие изменения фактически выполняются для объектов в списке? Скорее всего, вы видите запросы, связанные с состоянием отношения между родителем и его дочерними элементами, и это не имеет ничего общего с объединением. Сохранение измененных отношений между родителем и дочерними элементами является частью состояния сохранения (в данном случае слиянием) состояния родителя. –

Смежные вопросы