2011-08-08 20 views
0

参照エンティティのヌルフィールド:コードが言うように休止ポストロードと私は2つの下記のような実体持っ

@Entity 
public class Project { 
    @Id 
    private id; 
    private String name; 

    ... 
} 

@Entity 
public class Person { 
    @Id 
    private id; 
    private String name; 

    @ManyToOne 
    private Project project; 

    @PostLoad 
    void onLoad(){ 
     if (project.getName() == null){ 
     //It's always null!!! 
     } 
    } 


    ... 
} 

は、オンロードに関連するエンティティのフィールドは、すべての分野事実-in常にnullであります関連するエンティティはnullです。私はonLoadを呼び出す前にフィールドをフェッチするためにHibernateが必要です。

ありがとうございました。

答えて

0

あなたはそれがあるかもしれないFetch strategyを設定する必要があります。

FetchType.LAZY 

または

FetchType.EAGER 

あなたが外国人のIDとも結合列を定義する必要があります。あなたのコードで

... 
@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "project_id") 
private Project project; 
関連する問題