Вопрос

Приветствуются, что я разрабатываю не внесение в пользу с использованием Spring+Hibernate. У меня вопрос, как HibernatedAosupport обрабатывает ленивую загрузку, потому что после вызова Do Dao сеанс закрыт.

Взгляните на следующий код psuedo:

Дао как:

CommonDao extends HibernateDaoSupport{
 Family getFamilyById(String id);
 SubFamily getSubFamily(String familyid,String subfamilyid);
}

Доменная модель похожа на:

Family{
 private List<SubFamily> subfamiles;
 public List<SubFamily> getSubFamiles();
}

SubFamily{
 private Family family; 
 public Family getFamily();
}

В приложении я получаю DAO из приложения-контекста и хочу следить за операциями. Возможно ли это сделать с ленивой загрузкой, потому что AFAIK после каждого метода (getFamilyByid (), GetSubfamily ()) сеанс закрыт.

CommonDAO dao=//get bean from application context;
Family famA=dao.getFamilyById(familyid);
//
//Do some stuff
List<SubFamily> childrenA=fam.getSubFamiles();

SubFamily asubfamily=dao.getSubFamily(id,subfamilyid);
//
//Do some other stuff
Family famB=asubfamily.getFamily();
Это было полезно?

Решение

Мой вопрос заключается в том, как HibernatedAosupport обрабатывает ленивую загрузку, потому что после вызова Дао сеанс закрыт.

DAOS не создает/не закрывает сеанс для каждого вызова, они не несут ответственности за это, и это обычно делается с использованием "Открыть сессию в виде«Паттерн (весна предоставляет фильтр или перехватчик для этого). Но это для веб -приложений.

В приложении Swing одно решение - использовать Длиная сессия. Анкет Вам придется решить четко определенные точки, чтобы закрыть сеанс, чтобы выпустить память. Для небольших приложений это обычно просто и будет работать. Для более крупных (т.е. приложения реальной жизни) правильное решение состоит в том, чтобы использовать один сеанс на кадр/внутренний кадр/диалог. Это сложнее управлять, но будет масштабироваться.

Некоторые темы, которые вы можете прочитать:

Другие советы

на гораздо больше времени и расследования кажется, это «нормальное» поведение.Ошибка не имеет значения и выбросина как можно лучше;Это даже не может быть фактической ошибкой в реальной жизни.Похоже, офисные клиенты делают некоторые взлома, которые делают то, что они делают.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top