我想寫使用JPA標準API簡單CriteriaQuery中是太多了小白
SELECT * FROM roles WHERE roles.name IN (SELECT users.role FROM users where name="somename");
以下SQL查詢,這是一個有點多,我(我剛開始性學習的Criteria API)。我有這樣的事情:
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);
而我不知道如何把它放在一起。
最好的問候, 鮑爾泰克
只是一個觀點:我喜歡JPA,我之前使用過Hibernate的'Criteria',但我已經遠離JPA'Criteria'。它的複雜性給我帶來了額外的價值。 – madth3
嗯,我同意,這是複雜的方式。 – BartoszCichecki