3

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...

1 Answer 1

3

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)?

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for your suggestions. The problem was the missing @Id annotation. Rookie mistake :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.