2017-01-01 7 views
0

私の問題はLazyInitializationExceptionを取得していることです。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] 

私はHttpSessionのを使用してい

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;} 

1クラスに2体の@ManyToOne関係を持っています。 私もこのプロパティーを追加しようとしましたspring.jpa.properties.hibernate.enable_lazy_load_no_trans=trueしかしそれは役に立たなかった。私は解決策があるかどうかを知りたい。また、サービスでトランザクションアノテーションを使用しようとしました。

+0

をエンティティを再接続する必要があり、あなたがデータをフェッチしているし、場所を正確に例外がスローされるか、コードを投稿することができます。少なくともスタックトレースを完了してください。 –

答えて

0

問題は、分離されているオブジェクトを呼び出すことです。例えば

Product product = em.find(Product.class, id) 

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

product.getCategory(); // It raises Exception 

私はあなたがそれらのオブジェクトを試みるのか分かりません。しかし、あなたはEntityManagerの のem.merge(detachedObject)

チェック状態のようにEntityManagerのにhttps://vladmihalcea.com/a-beginners-guide-to-jpahibernate-entity-state-transitions/

関連する問題