mysql - Hibernate 返回最后一行 n 次
问题描述
我正在使用休眠核心 5.4.33.Final 和 mysql-connector 8.0.22。DB MySql org.hibernate.dialect.MySQLDialect。我的问题也出现在以前的版本上。
在单个表上运行一个简单的 SQL 查询,没有连接,只返回最后一条记录 n 次,其中 n 是正确的记录数。
HQL查询
SELECT ig.id, ig.codice
FROM ImpiantiGestitiDto as ig
架构:
id=integer autoincrement
idPalestra=integer
codice=varchar(6)
numero=char(3)
codice_descrizione_impianto=varchar(6)
ImpiantiGestitiDto=Dto
这是我的代码。我不使用循环。
Query<Object> query = session.createQuery(hql);
result = query.getResultList();
mysql-connector 成功运行查询:
StandardRowReader - ---Processing Row---
Extracted JDBC value [0] - [1]
Extracted JDBC value [1] - [000.00]
StandardRowReader - ---Processing Row---
Extracted JDBC value [0] - [2]
Extracted JDBC value [1] - [000.01]
StandardRowReader - ---Processing Row---
Extracted JDBC value [0] - [3]
Extracted JDBC value [1] - [000.02]
StandardRowReader - ---Processing Row---
Extracted JDBC value [0] - [4]
Extracted JDBC value [1] - [000.03]
getResultList() 上的输出;错误的!
[[4,"000.03"],[4,"000.03"],[4,"000.03"],[4,"000.03"]]
我认为问题出现在:-org.hibernate.sql.results.spi 包;- 类 ListResultsConsumer;-方法消耗。
在接下来的循环中, results.add(row) ;指示发生错误。为什么会出现问题?你能帮助我吗?谢谢!
while (rowProcessingState.next()) {
final R row = rowReader.readRow( rowProcessingState, processingOptions );
boolean add = true;
if ( uniqueRows ) {
if ( results.contains( row ) ) {
add = false;
}
}
if ( add ) {
results.add( row );
}
rowProcessingState.finishRowProcessing();
}
使用查询
FROM ImpiantiGestitiDto order by id
其作品。
使用查询
SELECT id, codice FROM ImpiantiGestitiDto order by id
不起作用。
我必须使用第二个查询,因为表 ImpiantiGestitiDto 已连接到另一个表,我必须使用 WHERE 子句。
感谢您的回答。
解决方案
推荐阅读
- python - 如何将 PortAudio 包含到 pyinstaller onefile 构建中
- sql - 从多行日期中获取开始和结束日期,不包括周末
- php - PHP Guzzle 无法解析本地主机上的主机,但可以在服务器上运行
- k3s - LoadBalancer 服务 External-IP 在 K3s 中与 MetalLB 挂起
- javascript - JS
- sungridengine - 如何以用户身份在 SGE 作业结束时将资源使用情况打印到日志中
- graphql - 如何定义 nexus ObjectType 以进行正确的查询?
- c# - 如何在新的 ASP.NET Core 最小模板中获取“IConfiguration”?
- javascript - 问题在使用 JS 的 html 中禁用选择的字段
- php - Lumen中如何通过API网关上传文件