簡體   English   中英

Hibernate:使用@SqlResultSetMapping映射本機查詢的結果集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM