Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django-like queries in Java/JPA

Tags:

java

orm

jpa

Is there any library or framework to make JPA queries in a less verbose way such as:

User.query("age < 30")

instead of:

Query query = entityManager.createQuery("select u FROM User u WHERE age < 30");
return query.getResultList();

I suppose there is no standard way to do it with JPA. I've seen Hibernate Criteria API, that is not as simple as Django and forces your application to be coupled to Hibernate. I'd like to know what do you think about it and other approaches.

like image 537
Guido Avatar asked Feb 28 '23 16:02

Guido


2 Answers

Yes, a Java framework allow you to do that: Play! framework. It's a framework similar to Django but complety written using Java. http://www.playframework.org/documentation/1.0.1/model

For instance you can write something like:

User.find("age< ?", 30).fetch();

Moreover this is not coupled to hibernate you can use other technologies like Google App Engine datastore or Amazon Simple DB throw Siena

like image 191
Loïc Guillois Avatar answered Mar 11 '23 07:03

Loïc Guillois


You can make your query shorter:

from User where age < 30

Additionally I would like to add that the Hibernate API is much more powerful and adds things like polymorphism and prefetching in a nice way, so don't give up on it yet.

like image 43
Alexander Torstling Avatar answered Mar 11 '23 06:03

Alexander Torstling