TLDR: --在我的项目中使用Spring-jpa
和Hibernate
,只有在我试图在使用org.apache.commons.lang3.SerializationUtils.clone()
方法深入克隆的实体中获得定义为Lazy
的对象列表之后,才会出现问题。
我得到以下异常
Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:167)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
at sei.persistence.wf.entities.Element_$$_jvstc68_47.getNote(Element_$$_jvstc68_47.java)
at JSON_to_XML.createBpmnRepresantation(JSON_to_XML.java:139)
at JSON_to_XML.main(JSON_to_XML.java:84)
在尝试获取定义为users
对象中的lazy
的所有duplicateEvent
的列表之后
代码:
@Service
public class EventService {
@Autowired
EventRepository eventRepository;
public List<User> duplicateEvent(Long id) {
Event event = eventRepository.findById(id);
Event duplicateEvent = SerializationUtils.clone(event);
return duplicateEvent.getUsers();
}
}
事件实体:
@Entity
@Table(name="events")
public class Event implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private Integer id;
@OneToMany(fetch= FetchType.LAZY, mappedBy="event")
privare List<User> users = new ArrayList();
public List<User> getUsers() {
return this.users;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Event() {
}
}
p.s:spring.jpa.hibernate.enable_lazy_load_no_trans=true
财产没有帮助
发布于 2017-12-30 19:23:33
https://stackoverflow.com/questions/47989554
复制相似问题