2014-01-14 17 views
0

我有兩個實體,我將其命名爲AB。 B被映射到像這樣:如何在JPA中檢索父級信息

@ManyToOne(targetEntity=A.class) 
private A parent; 

和A有其他關係:

@OneToMany(targetEntity=B.class) 
private List<B> children; 

在我的客戶方,然後我有一個呼叫使用它可以獲取所有基站中的數據庫與父命名查詢:

Select b from B b where b.m_parent=:parent 

的問題是,雖然這工作得很好,我得到的所有元素,每一個B的JSON包括owner:{//A's info}

有沒有一種方法可以讓我不返回A的信息B的每個元素我查詢?

回答

1

既然你提到了json,我假設你正在序列化查詢結果。看起來A的數據正在被抓取(熱切地/懶惰地),因爲你的json串行器假定parent包含要序列化的重要數據。

你需要序列化時跳過parent領域(例如使用取決於您的JSON庫@Transient註解或其他方式)

+0

但如果我這樣做,那麼NamedQuery不再工作,因爲我沒有訪問字段父親 – user2573153

+0

您需要以某種方式使其僅對json序列化程序暫時存在,而不是JPA – gerrytan