Spring MVC + Hibernate를 사용하여 필자의 애플리케이션을 작성하고있다. 주문 및 품목 (주문 항목)이 2 개 있습니다.최대 절전 모드를 사용하는 지연로드 초기화 4
주문 엔티티 :
@Entity
@Table(name = "orders")
public class Order {
@Id
@GeneratedValue
private int id;
@Column(name = "time")
private long time;
@OneToMany(mappedBy = "order")
private List<Item> items;
항목 엔티티 :
내가 페이지에서 주문 '/ 주문'페이지에서 주문의 세부 '/ 주문/{ID}을 나열 할@Entity
@Table(name = "items")
public class Item {
@Id
@GeneratedValue
private int
@ManyToOne(targetEntity = Order.class)
private Order order;
@Column
private int count;
/보기 '. 내 DAOImpl에서
내가 코드를 아래의 총수 :
public List<Order> view() {
return sessionFactory.getCurrentSession()
.createCriteria(Order.class)
.addOrder(org.hibernate.criterion.Order.desc("time"))
.list();
}
이 코드는 모든 주문의 목록을 반환합니다. 하지만 주문의 세부 사항을 보려고하면 예외가 있습니다 : org.apache.jasper.JasperException : org.hibernate.LazyInitializationException : lazily 역할 컬렉션을 초기화하지 못했습니다 : ru.drupo.order.domain.Order.items, 초기화 할 수 없습니다. 프록시 - 아니요 세션.
주문 엔티티에 추가하면 주문에 중복 주문이 있습니다. fetch = FetchType.EAGER. 그러나 주문의 세부 사항이 올바르게 표시됩니다.
게으른로드를 초기화하는 방법은 무엇입니까?
감사합니다. 작동합니다. – Mufanu