Spring 3.0.5, Hibernate 3.6.7 및 Vaadin을 사용하고 있습니다. 트랜잭션 방식으로 바인드 된 세션에서도 Hibernate "no session or session was closed"
나는 내가 컨텍스트에서 얻을 대화의 창을 가지고이@Entity
public class Foo {
@OneToMany(fetch = FetchType.LAZY)
private Collection<Bar> bars;
...
}
처럼 간단한 개체를하고 '갑'에서 '바'를 보여줄 예정. 사용자가 foo는 막대를 보여달라고 할 때
@Component
@Scope("prototype")
public class FooBarDialogImp extends Window implements FooBarDialog {
@Transactional(readOnly = true)
public void populate(Foo foo) {
...
for (Bar bar : foo.getBars()) {
// populate the dialog with bar information
...
}
}
}
는, 나는이
public class FooController {
...
public void showFooBars(Foo foo) {
FooBarDialog dialog = context.getBean(FooBarDialog.class);
dialog.populate(foo);
showDialog(dialog);
}
}
그런 짓을하지만 문제는 최대 절전 모드에서 "아니오 세션"예외를 얻을 수 있다는 것입니다. 세션 팩토리를 삽입하고 바운드 세션이 있는지 확인하기 위해 코드를 변경했습니다. 내가 뭘 잘못하고 있는지 모르겠다. 누구나 아이디어가 있으십니까?
굉장합니다. 나는 세션에서 분리되는 엔티티에 대해 생각하지 않았다. 당신의 대답은 더 나은 해결책을 찾기 위해 빛을주었습니다. 감사 :) –