I'm trying the following:
MyResult.java :
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityResult;
import javax.persistence.SqlResultSetMapping;
@Entity
@SqlResultSetMapping(name = "myResults", entities = {@EntityResult(entityClass = MyResult.class)})
public class MyResult implements Serializable
{
/**
*
*/
private static final long serialVersionUID = -1934790337160508576L;
@Column(name="X")
private int x;
@Column(name="Y")
private double y;
//
// Getters and Setters...
//
}
And in other java class:
Query q = ((org.hibernate.ejb.QueryImpl) this.entityManager.createNativeQuery (this.sql,
"myResults")).getHibernateQuery ( );
List<MyResult> result = q.list ( );
When I run this code I get:
[PersistenceUnit: MyHibernatePgSql] Unable to configure EntityManagerFactory
And when I remove the: "@Entity" part from the MyResult.java i get:
org.hibernate.MappingException: Unknown SqlResultSetMapping [myResults]
I know that I'm doing something wrong but I don't know what? Also I can't find good documentation about this.
Thanks in advance
edit: The query looks like this: SELECT X, AGG_FUNC(F) AS Y FROM...
Some remarks/questions:
Do you really get only [PersistenceUnit: MyHibernatePgSql] Unable to configure EntityManagerFactory without any stack trace or log?
Does your entity have an @Id annotation somewhere (required for an entity)?
Why do you call getHibernateQuery? This seems unnecessary and so does the cast into o.h.e.QueryImpl.
Why don't you use JPQL (in which case, you could use SELECT NEW assuming your entity does have the proper constructor)?
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