Skip to content

Relaximus/hql-builder

Repository files navigation

Hql Builder Build Status

Intro

This is a simple tool to create dynamic HQL queries in more fancy way, using groovy DSL. It looks like this:

def q = HqlQuery.build(Book) {
    where {
        or {
            eq("id", 2)
            'in'("status", [BookStatuses.PUBLISHED, BookStatuses.NEW])
        }
        
    }
}

q.queryString produces:

from Book 
where id = :p1 OR  status in (:p2)

and q.paramValues will give you a Map of params:

[p1: 2, p2: [PUBLISHED, NEW]]

Installation

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.relaximus:hql-builder:1.0'
}

Usage

Build can accept the string instead of the model class, this string will be the beginning of the constructed HQL query.

Main section also accepts: count(), delete() and limit() methods which change the whole behaviour of the query.

Predicates

All predicates are connected with the implicit AND operation, OR should be used explicitly instead.

  • eq / neq - Simple equality/not equality.
  • in - Value in the list
  • like / iLike - Text search (with case insensitive option)
  • gt / gte / lt / lte - > / ≥ / < / ≤
  • isNull