Хороший подход показан следующим образом
Если вам нужно вызвать метод получения , используйте метод get. Метод get попадает в базу данных.
public class AccountServiceImpl implements AccountService {
private SessionFactory sessionFactory;
public BigDecimal getBalance(Integer acountId) {
// You need to know your balance
// So you need to use get method to access the database
Account account = (Account) sessionFactory.getCurrentSession().get(Account.class, accountId);
return account.getBalance();
}
}
Если вам нужно вызвать как метод получения, так и метод установки , используйте метод get.
В ответ на комментарий ChssPly:
JPA с книгой Hibernate говорит о методе загрузки
Метод load () всегда пытается вернуть прокси и возвращает инициализированный экземпляр объекта, только если он уже управляется текущим контекстом постоянства.
И
Он попадает в базу данных, как только вы пытаетесь получить доступ к возвращенному заполнителю и принудительно инициализировать его
Таким образом, он прав, когда вы устанавливаете одно свойство.
Но есть следующий сценарий , показанный в JPA с книгой Hibernate
Обычно постоянный экземпляр получают для назначения его в качестве ссылки на другой экземпляр. Например, представьте, что вам нужен элемент только для одной цели: установить связь с комментарием: aComment.setForAuction (item).
Если это все, что вы планируете делать с предметом, прокси подойдет; нет необходимости
ударить базу данных. Другими словами, когда комментарий сохраняется, вам нужно значение внешнего ключа элемента, вставленного в таблицу COMMENT.
Прокси-объект Item предоставляет только это: значение идентификатора, заключенное в заполнитель, который выглядит как реальная вещь.
С уважением,