[英]Hibernate: Mapping result set of native query with @SqlResultSetMapping
我正在嘗試以下方法:
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...
//
}
而在其他java類中:
Query q = ((org.hibernate.ejb.QueryImpl) this.entityManager.createNativeQuery (this.sql,
"myResults")).getHibernateQuery ( );
List<MyResult> result = q.list ( );
當我運行此代碼時,我得到:
[PersistenceUnit:MyHibernatePgSql]無法配置EntityManagerFactory
當我從MyResult.java中刪除:“@ Entity”部分時,我得到:
org.hibernate.MappingException:未知的SqlResultSetMapping [myResults]
我知道我做錯了但我不知道是什么? 另外,我找不到關於此的好文檔。
提前致謝
編輯:查詢如下所示: SELECT X, AGG_FUNC(F) AS Y FROM...
一些評論/問題:
你真的只得到[PersistenceUnit: MyHibernatePgSql] Unable to configure EntityManagerFactory
沒有任何堆棧跟蹤或日志的情況下[PersistenceUnit: MyHibernatePgSql] Unable to configure EntityManagerFactory
嗎?
您的實體是否在某處具有@Id
注釋(實體需要)?
為什么調用getHibernateQuery
? 這似乎是不必要的,並且轉換為oheQueryImpl
。
為什么不使用JPQL(在這種情況下,您可以使用SELECT NEW
假設您的實體具有正確的構造函數)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.