gpt4 book ai didi

java - 使用 Hibernate 映射作为 native 查询获取不完整的对象

转载 作者:可可西里 更新时间:2023-11-01 08:03:18 25 4
gpt4 key购买 nike

考虑一个具有四个字段的实体(是的,它不是有效的 Java 代码,仅用于演示):

@Entity
Sale {
id, date, name, kind
}

我可以通过实体管理器轻松选择他的实体:

em.find(Sale.class, id)

但是,如果我想做一个更简单的查询并填充这个对象,我可以通过 native 查询作为简单对象来完成:

em.createNativeQuery("SELECT s.id, s.date FROM sale s", Sale.class)

问题是由于缺少字段,我收到缺少列的错误:SQLException: Column name not found。

有没有办法告诉 Hibernate 忽略丢失的列,以便我们可以只获取我们需要的列?

编辑:其中一个答案建议为每个缺失的列选择 NULL。问题是可能有大约 40 列,我当然不想将它们全部命名。

最佳答案

尝试这样的事情:

em.createNamedQuery("SELECT id, date, cast(null as char(1)) name, cast(null as char(1)) kind from sale", Sale.class);

请注意,char 可能需要根据 namekind 的数据类型进行更改。

关于java - 使用 Hibernate 映射作为 native 查询获取不完整的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44409733/

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