2011-08-22 55 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(); 
} 
:但是,您可以通过键入结果作为选择查询的结果值