Нужно ли объединение для сохранения в спящем режиме?как работает Каскад? - PullRequest
0 голосов
/ 18 мая 2018

У меня есть родительский класс с дочерним классом, как показано ниже

 class Parent{
          private child; 

     } 

 Class Child {........ some variables; }

Мы объединяем oldObject и newObject при внесении любых изменений в пользовательский интерфейс.теперь, сохраняя данные с помощью hibernate, он передает данные на уровень DAO, но сохраняет данные.

Нужно ли использовать функцию слияния?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Перебрал опции каскадирования в Google.сохранение-обновление работало для меня.

0 голосов
/ 18 мая 2018

Для ясности предположим, что в коде данных вы делаете следующее:

public void updateMyEntity(TheEntity oldEntity) {
  final Session session = openSession();
  try {
    session.getTransaction().begin();

    TheEntity attachedEntity = session.find( TheEntity.class, oldEntity.getId() );
    copyDataFromDetachedEntityToAttached( oldEntity, attachedEntity );

    session.getTransaction().commit();        
  }
  catch ( Exception e ) {
    if ( session != null && session.getTransaction().isActive() ) {
      session.getTransaction().rollback();
    }
    throw e;
  }
  finally {
    if ( session != null && session.isOpen() ) {
      session.close();
    }
  }
}

Если TheEntity состоит из некоторых базовых или каскадных ассоциаций, вы можете легко проигнорировать вызов объединить и просто изменить прикрепленный объект.Во время фиксации Hibernate выполнит сброс, который неявно объединит изменения, сделанные в любых прикрепленных объектах в контексте постоянства.

Теперь предостережение заключается в том, что TheEntity имеет какие-либо ассоциации, для которых не включен каскад.Если это так, вам нужно будет обработать соответствующее постоянство для всех вновь добавленных ассоциаций.

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