将sql查询转换为play查询生成器语法

kse8i1jr  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(318)

我需要帮助转换一个sql查询的东西,我可以在里面玩!
原始查询如下所示:

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?那个查询是什么样子的?
提前谢谢,
黑根

lztngnrs

lztngnrs1#

你可以用 and() 方法:

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

别忘了加上 com.avaje.ebean.Expr 导入。

x6yk4ghg

x6yk4ghg2#

在休眠条件中:

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

当做,

ekqde3dh

ekqde3dh3#

你说“我可以在里面玩的东西”,所以我假设任何第三方图书馆都可以。这里有一个使用jooq的解决方案(免责声明:我为供应商工作)。
我假设你在这里使用jooq的代码生成器:

Result<TriplestoreRecord> result =
ctx.selectFrom(TRIPLESTORE)
   .where(TRIPLESTORE.OWNING_ADMIN_ID.isNotNull())
   .and(TRIPLESTORE.IS_PUBLIC)
   .fetch();

相关问题