gpt4 book ai didi

java - Hibernate:使用@SqlResultSetMapping 映射 native 查询的结果集

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:57 24 4
gpt4 key购买 nike

我正在尝试以下操作:

我的结果.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 而没有任何堆栈跟踪或日志吗?

  • 您的实体是否在某处有一个 @Id 注释(实体需要)?

  • 为什么调用getHibernateQuery?这似乎是不必要的,转换成 o.h.e.QueryImpl 也是如此。 .

  • 您为什么不使用 JPQL(在这种情况下,您可以使用 SELECT NEW 假设您的实体确实具有适当的构造函数)?

关于java - Hibernate:使用@SqlResultSetMapping 映射 native 查询的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com