问题标签 [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.

0 投票
1 回答
409 浏览

c# - nHibernate 标准 ResultTransformer 不起作用

我有(长而复杂的)查询,基于标准。

以下代码:

工作正常,但它返回 50 个完整实体的列表。出于性能原因,我想为我的查询应用投影。以下代码也可以正常工作:

它返回 50 个数组的集合,每个数组包含 2 个对象,我可以通过索引访问它们。我想通过名称访问各个属性,所以我编写了以下代码:

据我在互联网上看到的,它应该返回字典列表。

但是: - myList 包含 50 个空项 - myElement 为空。

我究竟做错了什么?

0 投票
0 回答
1096 浏览

spring - 使用带有 DTO 投影的实体图,使用 ResultTransformer 返回空值

您好,我是 jpa + 标准 API + hibernate 的新手..

我对在 jpa 标准 API 中使用 ResultTransformer 有疑问。

我有两个实体部门和员工。部门和员工之间的一对多映射。我想将实体图与 DTO 投影一起使用

1.部门

2. 员工

部门DTO.java

当我得到列表的大小时,它会给我正确的结果,但它会给出具有空值的部门列表,例如

(在数据库中我总共有 3 个部门)

输出 :

我得到所有具有空值的字段。

那么这里的问题是什么,使用ResultTransformer有什么错误吗?或者有什么更好的方法来执行这个查询,我可以使用 DTO 获取记录 ..?

0 投票
1 回答
578 浏览

hibernate - 如何将 TypedQuery 结果映射到自定义对象列表

我需要进行一些选择并将其映射到自定义 DTO

没有帮助。

我有一个例外

这是否可以将 TypedQuery 映射到一些自定义 DTO?

0 投票
1 回答
481 浏览

java - Hibernate 本机 SQL 查询 - 如何通过热切初始化的一对多关联获取不同的根实体

我有两个实体DeptEmp(实际情况已更改并最小化)。它们之间存在 1:n 的关联,即属性Dept.empList,并Emp.dept与各自的注释一起存在。我想使用本机 SQL 查询来获取List<Dept>其元素是不同的并empList热切地初始化集合。

此查询返回正确初始化的数组和字段中的List<Object[2]>实例DeptEmp按此顺序) 。Dept.empList没关系。

为了获得不同Dept的 s,我认为设置变压器DISTINCT_ROOT_ENTITY(取消注释该行)就足够了。不幸的是,DistinctRootEntityResultTransformer它基于RootEntityResultTransformer将元组中的最后一个元素视为根实体(它是硬连线的)。由于实体的顺序是由addEntity,addJoin调用的序列决定的,因此转换器错误地将Emp其视为根实体并返回包含所有Emps 的所有Depts 的列表。

有没有什么干净的方法可以让 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(我知道 - 遗留项目 :-) 虽然我查看了最新版本的源代码,但似乎关键点没有不同)。