gpt4 book ai didi

java - 有什么方法可以使 hibernate 查询自动返回键值映射(省略 "as")?

转载 作者:行者123 更新时间:2023-11-28 23:59:24 26 4
gpt4 key购买 nike

由于存储在 Mysql 中的数据总是有一个列名,我认为如果有一种方法可以检索键值映射中的记录,那就太好了。

连接查询的 Hibernate 机制帮不上什么忙,因为我们只能检索 Object[] 结果并自己反序列化结果,或者我们可以使用 this :

This is most useful when used together with select new map:
select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )
from Cat cat

上面的查询给出了一种检索 map 的方法,但是我们必须定义 map 的键(with as),我认为这只是一个案例解决方案,它是硬编码字段名称不是很优雅。

如果我们找到一种仅使用列名称自动定义检索到的映射的 key 的方法,这不是更好更通用吗?那么我们是否可以发送一个包含所有字段的 map ,让应用程序选择使用哪个字段?

最佳答案

即使有这样的特性,Hibernate 又怎么能决定哪些是 Map 键,哪些列来自 Map 值。

最灵活的解决方案是定义一个 DTO,用于保存选定的投影:

select new my.package.DTO(field1, field2, .., fieldn) from ...

您只需将结果传递给 custom result transformer ,其中包含确切的结果集键映射逻辑。

关于java - 有什么方法可以使 hibernate 查询自动返回键值映射(省略 "as")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30440153/

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