Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa LazyInitializationException无法初始化代理-无会话_Jpa_Lazy Loading_Lazy Initialization - Fatal编程技术网

Jpa LazyInitializationException无法初始化代理-无会话

Jpa LazyInitializationException无法初始化代理-无会话,jpa,lazy-loading,lazy-initialization,Jpa,Lazy Loading,Lazy Initialization,我的问题是我遇到了LazyInitializationException org.hibernate.LazyInitializationException: could not initialize proxy - no Session at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:148) ~[hibernate-core-5.0.11.Final.jar:5.0.

我的问题是我遇到了LazyInitializationException

org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:148) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:266) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:73) ~[hibernate-core-5.0.11.Final.jar:5.0.11.Final]
at sk.kristian.dienes.eshop.entity.SubCategory_$$_jvsta89_5.hashCode(SubCategory_$$_jvsta89_5.java) ~[main/:na]
at sk.kristian.dienes.eshop.entity.Product.hashCode(Product.java:18) ~[main/:na]
我在一个班级里有两个@manytone关系

public class Product implements Serializable{

@Id
@Column(name = "id")
private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_category")
private Category category;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_sub_category")
private SubCategory subCategory;
}

@Entity
@Data
public class SubCategory implements Serializable {
   @OneToMany(mappedBy = "subCategory", cascade = CascadeType.ALL,fetch = FetchType.EAGER)
   private List<Product> products;
 }

 @Entity
 @Data
 public class Category implements Serializable {
    @OneToMany(mappedBy = "category", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private List<Product> products;}
公共类产品实现可序列化{
@身份证
@列(name=“id”)
私人长id;
@manytone(fetch=FetchType.LAZY)
@JoinColumn(name=“id\u类别”)
私人类别;
@manytone(fetch=FetchType.LAZY)
@JoinColumn(name=“id\u子类”)
私有子类别子类别;
}
@实体
@资料
公共类子类别实现可序列化{
@OneToMany(mappedBy=“subCategory”,cascade=CascadeType.ALL,fetch=FetchType.EAGER)
私人上市产品;
}
@实体
@资料
公共类类别实现可序列化{
@OneToMany(mappedBy=“category”,cascade=CascadeType.ALL,fetch=FetchType.EAGER)
私有列表产品;}
我正在使用HttpSession。
我还尝试添加这个属性
spring.jpa.properties.hibernate.enable\u lazy\u load\u no\u trans=true
,但没有帮助。我想知道是否有解决办法。还尝试在服务中使用事务性Anotion。

问题是您试图调用已分离的对象

(例如)

我不知道你想用这些东西做什么。但您应该像
em.merge(detachedObject)

检查EntityManager的状态

您能否发布代码、如何获取数据以及异常抛出的确切位置。至少完成堆栈跟踪。
Product product = em.find(Product.class, id)

// somewhere `em.detach(product)` is called.

product.getCategory(); // It raises Exception