问题标签 [resulttransformer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - nHibernate 标准 ResultTransformer 不起作用
我有(长而复杂的)查询,基于标准。
以下代码:
工作正常,但它返回 50 个完整实体的列表。出于性能原因,我想为我的查询应用投影。以下代码也可以正常工作:
它返回 50 个数组的集合,每个数组包含 2 个对象,我可以通过索引访问它们。我想通过名称访问各个属性,所以我编写了以下代码:
据我在互联网上看到的,它应该返回字典列表。
但是: - myList 包含 50 个空项 - myElement 为空。
我究竟做错了什么?
spring - 使用带有 DTO 投影的实体图,使用 ResultTransformer 返回空值
您好,我是 jpa + 标准 API + hibernate 的新手..
我对在 jpa 标准 API 中使用 ResultTransformer 有疑问。
我有两个实体部门和员工。部门和员工之间的一对多映射。我想将实体图与 DTO 投影一起使用
1.部门
2. 员工
部门DTO.java
当我得到列表的大小时,它会给我正确的结果,但它会给出具有空值的部门列表,例如
(在数据库中我总共有 3 个部门)
输出 :
我得到所有具有空值的字段。
那么这里的问题是什么,使用ResultTransformer有什么错误吗?或者有什么更好的方法来执行这个查询,我可以使用 DTO 获取记录 ..?
hibernate - 如何将 TypedQuery 结果映射到自定义对象列表
我需要进行一些选择并将其映射到自定义 DTO
但
没有帮助。
我有一个例外
这是否可以将 TypedQuery 映射到一些自定义 DTO?
java - Hibernate 本机 SQL 查询 - 如何通过热切初始化的一对多关联获取不同的根实体
我有两个实体Dept
和Emp
(实际情况已更改并最小化)。它们之间存在 1:n 的关联,即属性Dept.empList
,并Emp.dept
与各自的注释一起存在。我想使用本机 SQL 查询来获取List<Dept>
其元素是不同的并empList
热切地初始化集合。
此查询返回正确初始化的数组和字段中的List<Object[2]>
实例Dept
(Emp
按此顺序) 。Dept.empList
没关系。
为了获得不同Dept
的 s,我认为设置变压器DISTINCT_ROOT_ENTITY
(取消注释该行)就足够了。不幸的是,DistinctRootEntityResultTransformer
它基于RootEntityResultTransformer
将元组中的最后一个元素视为根实体(它是硬连线的)。由于实体的顺序是由addEntity
,addJoin
调用的序列决定的,因此转换器错误地将Emp
其视为根实体并返回包含所有Emp
s 的所有Dept
s 的列表。
有没有什么干净的方法可以让 Hibernate 将其识别Dept
为根实体,即使它不是实体列表中的最后一个?
注 1:我尝试将 order 切换为.addJoin("e", "d.empList").addEntity("d", Dept.class)
. d.empList
由于需要d
定义,因此不起作用。HibernateSystemException : Could not determine fetch owner
在 Hibernate 内部(org.hibernate.loader.Loader
)的某个地方失败。
注 2:我试图将 order 定义为.addEntity("e", Emp.class).addJoin("d", "e.dept")
. 这看似有效,但该关联实际上仅从“多”方填充。因此,在请求之前,该集合Dept.empList
是一些未初始化的代理,它调用显式 SQL 查询,因此在我的查询中不使用连接。
注 3:寻找硬连线索引的自定义变压器有效:
虽然我很犹豫接受这么简单的任务可能有这么复杂的解决方案。
Hibernate 版本:3.6.10(我知道 - 遗留项目 :-) 虽然我查看了最新版本的源代码,但似乎关键点没有不同)。