转换SQL查询以播放查询生成器语法

时间:2012-08-24 12:01:42

标签: java playframework-2.0

我需要帮助将SQL-Query转换为我可以在play中使用的东西!

原始查询如下所示:

SELECT * FROM `triplestore`
  WHERE `owning_admin_id` IS NOT NULL
  AND `is_public` IS true;

我的目标是获得像

这样的东西
Triplestore.find.where()
  .isNotNull("owningAdmin")
  .is("is_public", true)
  .findList();

这是可能的还是我必须使用JPQL?那个查询会是什么样的?

提前致谢,
哈根

3 个答案:

答案 0 :(得分:2)

您可以使用and()方法:

Triplestore.find.where().and(Expr.isNotNull("owningAdmin"),Expr.eq("is_public", true)).findList();

不要忘记添加com.avaje.ebean.Expr导入。

答案 1 :(得分:0)

在Hibernate Criteria中:

List<Triplestore> triplestores = 
    (List<Triplestore>) session.createCriteria(Triplestore.class)
    .add( Restrictions.isNotNull("owning_admin_id") )
    .add( Restrictions.eq("is_public", Boolean.TRUE) ).list();

此致

答案 2 :(得分:0)

您说过“我可以在游戏中使用的东西!” ,所以我假设任何第三方库都可以。这是使用jOOQ的解决方案(免责声明:我为供应商工作)。

我假设您在这里使用jOOQ的代码生成器:

{
  "scopes_supported": [
    "custom_scope_1",
    "custom_scope_2",
    "offline_access"
  ],
  "grant_types_supported": [
    "authorization_code",
    "client_credentials",
    "refresh_token",
    "implicit",
    "password"
  ],
}