Нужно ли явно сохранять измененный объект домена в весенней транзакции? - PullRequest
0 голосов
/ 14 октября 2011

Если у меня есть следующая транзакция, в которой мой доменный объект отображается как Cascade.ALL с использованием Hibernate:

@Transactional
public void transactionAllMethod(Domain domain) {
     domain.addItemToCollection(new Item);
     //Do I need to call domain.saveOrUpdate() here, or will changes to the domain be flushed
     //automatically at the end of the transaction with FLUSHMODE.AUTO?

     Domain domain2 = new Domain();
     //set some fields here

     //Do I need to save my second domain as it is new, or again will things be
     //automatically persisted during dirtychecking at the end of the transaction?
}

Если мне не нужно явно сохранять в любом случае, где мне это делать?

Ответы [ 2 ]

1 голос
/ 14 октября 2011

Если домен новый, вам нужно его сохранить, а если он отключен, вам нужно будет вызвать update, чтобы заново присоединить его к сеансу.Hibernate будет проверять только грязные объекты, которые присоединены к текущему сеансу.

В случае домена2 вам нужно вызвать save, чтобы убедиться, что он проверен на грязность.

1 голос
/ 14 октября 2011

Вам необходимо объединить любые изменения в существующую сущность и сохранить новую.

Session session = sessionFactory.getCurrentSession();
session.merge(domain);
session.save(domain2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...