Basic Operations¶
All examples below use Specification DSL. The same functions are available for PredicateSpecification and Predicate.
Setup¶
@Entity
class User(
@Id val id: Long,
val name: String,
val age: Int,
val email: String?,
val role: String,
val isActive: Boolean,
val isPremium: Boolean,
)
Equality¶
val activeUsers = User::isActive.equal(true)
val specificAge = User::age.equal(25)
val adminRole = User::role.equal("ADMIN")
val notAdmin = User::role.notEqual("ADMIN")
val notInactive = User::isActive.notEqual(false)
Comparison¶
Works with any Comparable type - numbers, dates, strings:
val adults = User::age.greaterThan(17)
val seniors = User::age.greaterThanOrEqualTo(65)
val youngAdults = User::age.lessThan(30)
val underAge = User::age.lessThanOrEqualTo(17)
val workingAge = User::age.between(18, 65)
String operations¶
val gmailUsers = User::email.like("%@gmail.com")
val startsWithJohn = User::name.like("John%")
val doesNotContainSmith = User::name.notLike("%Smith%")