JPA : How to convert a native query result set to POJO class collection

后端 未结 21 1465
孤街浪徒
孤街浪徒 2020-11-22 09:23

I am using JPA in my project.

I came to a query in which I need to make join operation on five tables. So I created a native query which returns five fields.

21条回答
  •  南笙
    南笙 (楼主)
    2020-11-22 09:49

    Using Hibernate :

    @Transactional(readOnly=true)
    public void accessUser() {
        EntityManager em = repo.getEntityManager();
        org.hibernate.Session session = em.unwrap(org.hibernate.Session.class);
        org.hibernate.SQLQuery q = (org.hibernate.SQLQuery) session.createSQLQuery("SELECT u.username, u.name, u.email, 'blabla' as passe, login_type as loginType FROM users u")
            .addScalar("username", StringType.INSTANCE).addScalar("name", StringType.INSTANCE)
            .addScalar("email", StringType.INSTANCE).addScalar("passe", StringType.INSTANCE)
            .addScalar("loginType", IntegerType.INSTANCE)
            .setResultTransformer(Transformers.aliasToBean(User2DTO.class));
    
        List userList = q.list();
    }
    

提交回复
热议问题