I'm trying to map a non-entity pojo with the createNativeQuery method of entityManager of jpa. By using something like this
@SqlResultSetMapping(name="ResultMapping",
classes={
@ConstructorResult(
targetClass=Employee.class,
columns={
@ColumnResult(name="empID", type=Long.class),
@ColumnResult(name="empName", type=String.class),
}
)
}
)
public class Loader{
private EntityManager em;
public void load(){
Query query = em.createNativeQuery("select empID, empName from employee", "ResultMapping");
List<Employee> = query.getResultList();
}
}
public class Employee{
private long empID;
private String empName;
public Employee(long empid, String empname)
{
this.empID = empid;
this.empName = empname;
}
}
I getting unknown SqlResultSetMapping ResultMapping
error
Where I am supposed to put SqlResultSetMapping so that the entityManager will able to recognize it?
Where I am supposed to put SqlResultSetMapping so that the entityManager will able to recognize it?
As far as I can see it varies from a persistence provider:
Hibernate: put it at any class annotated with @Entity; in fact I am able to reproduce the error when I put it elsewhere:
org.hibernate.MappingException: Unknown SqlResultSetMapping [ResultMapping]
Tested with EclipseLink 2.5.2, Hibernate 4.3.8.Final
In general to make your application portable across JPA providers it would be the best to put SqlResultSetMapping at any entity class.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With