У меня есть объект в Hibernate с несколькими лениво загруженными столбцами many-to-one
. Мне не обязательно, чтобы объект сохранялся в базе данных для набора операций.Как отделить постоянные атрибуты объекта Hibernate
Как я могу получить объект напрямую, чтобы каждый раз, когда я пытаюсь получить доступ к множеству к одному объекту, ему не нужно лениво извлекать из базы данных, и я могу получить значение (неважно, последний) без открытия сеанса.
Сейчас я открываю сеанс, создавая новый объект и отправляя его для операций, которые необходимо выполнить.
// Hibernate class
public class Foo {
private Long id;
//many-to-one mapping
private Bar barObj;
//getters and setters
}
Теперь всякий раз, когда я называю fooObj.getBarObj().getId()
есть прокси-вызов на сервер, чтобы получить значение идентификатора. Я не хочу, чтобы этот вызов состоялся, и хотите, чтобы fooObj
был локально сохранен.
Я хотел бы сохранить тип выборки как ленивый. Поскольку записи, которые я извлекаю, очень много, и очень немногие нуждаются в таких операциях. Есть ли более короткий способ получить только один конкретный объект. –
Затем используйте второе предложение - выборку с помощью запроса HQL, в котором вы явно указываете 'join fetch barObj'. –
Это проблема, связанная с проблемой, поскольку у меня много таких объектов, и мне придется позаботиться о нескольких объединениях. Спасибо в любом случае –