Feature | Engine | JPA | JDO | Hibernate | OrientDB |
General Condition | Simple | eq | query.eq(target.getName(),"name") | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 |
notEq | query.notEq(target.getName(),"name") |
gt | query.gt(target.getAge(),20) |
gtEq | query.gtEq(target.getAge(),20) |
lt | query.lt(target.getAge(),20) |
ltEq | query.ltEq(target.getAge(),20) |
in | query.in(target.getAge(),collection) |
notIn | query.notIn(target.getAge(),collection) |
contains | query.contains(target.getAge(),collection) |
notContains | query.notContains(target.getAge(),collection) |
like | query.like(target.getAge(),likeStrin) |
notLike | query.notLike(target.getAge(),likeString) |
likeNoCase | query.likeNc(target.getAge(),likeString) |
notLikeNoCase | query.notLikeNc(target.getAge(),likeString) |
group | AND | query.and() | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 |
OR | query.or() |
Insert | set a value | set | query.set(target.getName(),"the name"); | 2.0.0 | ko | ko | ko | 2.0.0 |
Update | set a value | set | query.set(target.getName(),"the name"); | 2.0.0 | 2.0.0 | ko | 2.0.0 | 2.0.0 |
Select | Projection | simple | query.prj(target.getName()) | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 |
max | query.prj(target.getName(),ProjectionType.MAX) |
min | query.prj(target.getName(),ProjectionType.MIN) |
count | query.prj(target.getName(),ProjectionType.COUNT) |
avg | query.prj(target.getName(),ProjectionType.AVG) |
sum | query.prj(target.getName(),ProjectionType.SUM) |
Order | ASC | query.order(target.getName()) | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 | 1.0.0 |
DESC | query.order(target.getName(),OrderType.DESC) |
ASC/DESC ProjectionType | query.order(target.getName(),ProjectionType.COUNT,OrderType.ASC) |
Having Group Operation | max | query.having(target.getAge(),ProjectionType.MAX) | 1.0.0 | 1.0.0 | ko | 1.0.0 | ko |
min | query.having(target.getAge(),ProjectionType.MIN) |
count | query.having(target.getAge(),ProjectionType.COUNT) |
avg | query.having(target.getAge(),ProjectionType.AVG) |
sum | query.having(target.getAge(),ProjectionType.SUM) |
Having Condition | eq | query.having(target.getAge(),ProjectionType.MAX).eq(10) | 1.0.0 partial | 1.0.0partial | 1.0.0 partial |
notEq | query.having(target.getAge(),ProjectionType.MAX).notEq(10) |
gt | query.having(target.getAge(),ProjectionType.MAX).gt(20) |
gtEq | query.having(target.getAge(),ProjectionType.MAX).gtEq(20) |
lt | query.having(target.getAge(),ProjectionType.MAX).lt(20) |
ltEq | query.having(target.getAge(),ProjectionType.MAX).ltEq(20) |
in | | ko | ko | ko |
notIn | |
contains | |
notContains | |
like | |
notLike | |
likeNoCase | |
notLikeNoCase | |
AND | |
OR | |
Join | inner | query.join(Person.class) | 1.5.0 | ko | ko | ko | ko |
left | query.join(Person.class,JoinType.LEFT) |
right | query.join(Person.class,JoinType.RIGHT) |
outer | query.join(Person.class,JoinType.OUTER) |
inner path | query.join(target.getMom(),Person.class) | 1.5.0 | 1.5.0 |
left path | query.join(target.getMom(),Person.class,JoinType.LEFT) |
right path | query.join(target.getMom(),Person.class,JoinType.RIGHT) |
outer path | query.join(target.getMom(),Person.class,JoinType.OUTER) |
Can Add Subquery In | projection | query.prj(subquery) | 1.5.0 | ko | ko | 1.5.0 | ko |
from | | ko | ko | ko |
condition | query.eq(target.getMom(),subquery) | 1.5.0 | 1.5.0 | 1.5.0 |
having | query.having(subquery,ProjectType.MAX) | 1.5.0 | ko | ko |
order | query.order(subquery,OrderType.ASC) | 1.5.0 | ko | ko |
Can Add to A Subquery | projection | query.prj(subquery) | ko | ko | ko |
from | | ko | ko | ko |
condition | query.eq(target.getMom()) | 1.5.0 | 1.5.0 | 1.5.0 |
having | query.having(target.getAge(),ProjectType.MAX) | 1.5.0 | 1.5.0 | 1.5.0 |
order | query.order(target.getName(),OrderType.ASC) | 1.5.0 | 1.5.0 | 1.5.0 |