Jak to możliwe, że JPA 2 jest takie popularne? Przecież to jest tak źle napisane, że szkoda gadać. Zwykłe selecty rozciągają się na 10linii.. przykład:
SELECT t FROM Teacher t WHERE t.firstName = 'prasad'
w jpa(criteria query) wykonuje się tak:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Teacher> query = cb.createQuery(Teacher.class);
Root<Teacher> teacher = query.from(Teacher.class);
query.select(teacher).where(cb.equal(teacher.get("firstName"),"prasad"));
TypedQuery<Teacher> typedQuery = em.createQuery(query);
List<Teacher> teachers = (List<Teacher>) typedQuery.getResultList();
for (Teacher t : teachers) {
System.out.println(t.getFirstName() + " "
+ t.getLastName() + " " + t.getSalary());
}
tak wiem, można pewne elementy skrócić o java8 ale nie w tym rzecz. Trzeba napisać 6linii beznadziejnego kodu aby wykonać selecta. Dziwię się, że społeczność Javy tak to gładko przyjęła i nie widać nigdzie na to hejtu.
dla porównania hibernate criteria query:
Criteria cr = session.createCriteria(Teacher.class);
cr.add(Restrictions.eq("firstName", "prasad"));
List results = cr.list();
Może mi ktoś wyjaśnić dlaczego jpa 2 jest takie popularne?