java - 我可以从 UPDATE 查询返回自定义对象而不是整数吗?
问题描述
执行 UPDATE 查询它总是返回 INT 受影响的行数。也许有一些方法可以返回例如更新或第一个更新的所有对象的列表?
我有@Entity SecurityPolicy 并希望在更新后恢复该对象。所以这是我的代码:
@Modifying
@Query(value = "UPDATE security_policy s set max_fail_sign_in =:maxFailSignIn," +
" min_password_length =:minPasswordLength," +
" capital_in_password =:capitalInPassword," +
" digit_in_password =:digitInPassword," +
nativeQuery = true)
SecurityPolicy updateSecurityPolicy(@Param("maxFailSignIn") Integer maxFailSignIn,
@Param("minPasswordLength") Integer minPasswordLength,
@Param("capitalInPassword") Boolean capitalInPassword,
@Param("digitInPassword") Boolean digitInPassword);
使用@Modifying 时,它告诉我结果应该是 Int,没有它 - 无法提取 ResultSet。我知道使用 spring 数据,您可以轻松地保存或更新某些实体并获得它,所以我想要实现类似的东西。
解决方案
不,您不能,因为整数响应不是由框架生成的,而是由 RDBMS 本身(SQL 规范)生成的。该整数表示查询修改了多少行。
由于您不想使用 JPA 来执行此操作,因此您必须SELECT
在更新后对该行进行操作,就像使用普通 SQL 一样。
推荐阅读
- android - 如何检查自定义 DialogFragment 是否显示?
- laravel - Laravel/Eloquent 通过一个约会成员表从一个多态的“member_id”获取所有约会
- python - 如何从链式查询集中删除重复项?
- c - 在 C LINUX 中从串行端口读取不一致
- powershell - Powershell Trasnscript - 输出到文件而不显示在控制台中
- java - 在 Intellij 中运行 java 应用程序,卡在:HikariPool-1 - 启动
- amazon-web-services - 将现有 AWS 资源整合到 CloudFormation 堆栈中
- node.js - 如何使用 mongodb 在单节点项目中将数据存储在两个不同的数据库中
- r - 从 arules 包中获取 read.transactions 错误
- jquery - 无法将标签附加到 div