Ron*_*dur 5 java spring hibernate spring-data spring-data-jpa
TLDR:我正在使用Spring-jpa
,Hibernate
在我的项目中,只有在我尝试获取Lazy
我使用方法深度克隆的实体中定义的对象列表后,我的问题才发生org.apache.commons.lang3.SerializationUtils.clone()
。
我得到以下异常
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)
Run Code Online (Sandbox Code Playgroud)
在我尝试获取对象中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();
}
}
Run Code Online (Sandbox Code Playgroud)
事件实体:
@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() {
}
}
Run Code Online (Sandbox Code Playgroud)
PS:spring.jpa.hibernate.enable_lazy_load_no_trans=true
财产没有帮助