Einfache CriteriaQuery in JPA Criteria API, das ist zu viel für ein noob

Ich versuche zu schreiben, die folgenden SQL-Abfragen mit JPA Criteria API

SELECT * FROM roles WHERE roles.name IN (SELECT users.role FROM users where name="somename");

und es ist ein bisschen zu viel für mich (ich habe gerade angefangen learing Kriterien API). Ich habe so etwas wie dieses:

    CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder();
    CriteriaQuery<RoleEntity> criteriaQuery = criteriaBuilder.createQuery(RoleEntity.class);
    Root<RoleEntity> root = criteriaQuery.from(RoleEntity.class);

    Subquery<UserEntity> subquery = criteriaQuery.subquery(UserEntity.class);
    Root<UserEntity> subqueryRoot = subquery.from(UserEntity.class);
    subquery.where(criteriaBuilder.equal(subqueryRoot.get(UserEntity_.username), username));
    subquery.select(subqueryRoot);

Und ich habe keine Ahnung, wie es alle zusammen.

Beste Grüße,
Bartek

  • Nur eine Meinung: ich Liebe JPA, ich habe Hibernate ist Criteria vor und noch habe ich geblieben Weg von JPA Criteria. Es ist Komplexität bringt keinen Mehrwert für mich.
  • Gut, ich Stimme zu, es ist viel zu kompliziert.
Schreibe einen Kommentar