2011-08-08 58 views
0

我有兩個實體像下面的那些空字段:休眠餐後和引用的實體

@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!!! 
     } 
    } 


    ... 
} 

正如代碼表示,上的onLoad相關實體的場總是-in其實空,所有領域相關實體是null-。在調用onLoad之前,我需要Hibernate來獲取字段。

有什麼想法?

謝謝。

回答

0

您必須設置一個Fetch strategy它可能是:

FetchType.LAZY 

FetchType.EAGER 

你應該跟國外ID還定義了連接列。

在您的代碼:

... 
@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "project_id") 
private Project project;