Hagen
Hagen

Reputation: 287

Convert SQL Query to play Query Builder Syntax

I need help with converting an SQL-Query to something I can use inside play!

The original Query looks like this:

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

My goal is to get something like

Triplestore.find.where()
  .isNotNull("owningAdmin")
  .is("is_public", true)
  .findList();

Is this even possible or do I have to use JPQL? What would that Query look like?

Thanks in advance,
Hagen

Upvotes: 0

Views: 541

Answers (3)

Lukas Eder
Lukas Eder

Reputation: 221106

You said "something I can use inside play!", so I'm assuming any third party library is OK. Here's a solution using jOOQ (disclaimer: I work for the vendor).

I'm assuming you're using jOOQ's code generator here:

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

Upvotes: 0

Manu Navarro
Manu Navarro

Reputation: 740

In 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();

Regards,

Upvotes: 0

ndeverge
ndeverge

Reputation: 21564

You can use the and() method:

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

Don't forget to add the com.avaje.ebean.Expr import.

Upvotes: 2

Related Questions