0
public class CustomRepositoryImpl implements CustomRepository {
    @PersistenceContext
    private EntityManager entityManager;

    public static final String QUERY_FIND = "SELECT.........";


    @Override
    public Collection<Object[]> find() {
        Query nativeQuery = entityManager.createNativeQuery(QUERY_FIND );
        return nativeQuery.getResultList();
    }
}

entityManager.createNativeQuery() method return Object[], but I want get myObjects. Can I convert Object[] into myObjects here or I need do it another place ?

Anju
  • 631
  • 2
  • 9
  • 25
Vitaliy
  • 59
  • 1
  • 1
  • 5

1 Answers1

0

you can use ConstructorResult to map the returned objects to your entity object

pls refer this post JPA : How to convert a native query result set to POJO class collection

Example:

   Query q = em.createNativeQuery(
      "SELECT c.id, c.name, COUNT(o) as orderCount, AVG(o.price) AS avgOrder " +
      "FROM Customer c, Orders o " +
      "WHERE o.cid = c.id " +
      "GROUP BY c.id, c.name",
      "CustomerDetailsResult");

   @SqlResultSetMapping(
       name="CustomerDetailsResult",
       classes={
          @ConstructorResult(
               targetClass=com.acme.CustomerDetails.class,
                 columns={
                    @ColumnResult(name="id"),
                    @ColumnResult(name="name"),
                    @ColumnResult(name="orderCount"),
                    @ColumnResult(name="avgOrder", type=Double.class)
                    }
          )
       }
      )
Community
  • 1
  • 1
pappu_kutty
  • 2,378
  • 8
  • 49
  • 93