2011-08-22 76 views
3

僅在Playframework中選擇必要的字段我最近玩過Play!框架,發現它很棒,特別是使用JPA的模型。它有助於加快開發進程。 但是,按照建議,我們只應在查詢中選擇必要的字段,而不是選擇*。我如何使用JPA選擇一些字段而不是全部?是否必須使用JPQL?如何使用JPA

回答

2

我相信你有一個誤解。 JPA返回實體,即通過ORM持久保存在數據庫中的對象。這意味着你不能只選擇一些字段,你可以獲得實體中的所有數據。

所以使用沒有「返回只有幾個領域」的東西。如果您使用原始SQL(jdbc),那將適用。

使用JPQL,遊戲提供了一些輔助方法,以方便查詢(見documentation),但否則是的,你必須使用JPQL。

7

如果你想使用的預測,你可以使用玩遊戲! JPA的查詢工具直接:

JPA.em().createQuery("select title,author from Article"); 
Article.find("select title from Article"); 

但不要嘗試去優化速度太快,使用普通的實體發現者往往你能恢復到自定義的預測只對性能敏感的查詢。你更好地緩存周圍的東西而不是檢索部分對象,因爲你會破壞對象封裝,並且一定會在以後出現問題。

1

雖然不如現在使用的是延長play.models實體。

public static void myfunction(Long id) 
{ 
    String sqlQuery = "SELECT id FROM mytable WHERE propertie="+id; 
    Long resultId = Mytable.find(sqlQuery).first(); 
} 
:但是,您可以通過鍵入結果作爲選擇查詢的結果值