for循环查询,导致最后返回的list都是最后一个对象的问题

for循环中有相同的id,通过id去查询时,会将之前查询到的缓存信息直接返回,导致获取到的对象hashcode值相同(同一对象)

将xml中flushcache属性设置为true就可以解决

或者另一种解决方案

在for循环中new一个对象,将查询到的对象属性拷贝到new的对象里,再加入到list中

原文地址:https://www.cnblogs.com/SeaWxx/p/10011114.html

时间: 2024-10-18 00:13:27

for循环查询,导致最后返回的list都是最后一个对象的问题的相关文章

通过调用支付宝查询对账单接口返回bill_download_url下载zip,解压缩

通过url下载zip对账单文件,进行解压. 读取压缩文件内容 import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import

SQL Server 查询中文字段返回为空

昨晚维护系统数据时,遇到个奇怪现象.明明数据库里有数据,查询结果就是返回为空.具体情况是这样的,查询工作日志表里关于工作描述的情况,以中文内容匹配工作描述字段,其中匹配内容里包含有空格. 尝试去掉第一个空格后面内容,查询有结果.而加多一个空格就没有了.不管是"=" 或者"like"匹配,均无结果. 于是,查看下工作描述字段类型,是nvarchar类型.想起来了,在匹配字符前加N. SQL语句: select * from 工作日志表 where 工作描述字段 =N'

循环查询sql带逗号(,)分隔的数据

? 1 2 3 4 5 6 select * from sys_role_list where id in (select c from (with test as (select roleid c from sys_role_info where id=1) select substr(t.ca,instr(t.ca, ',', 1, c.lv) + 1,instr(t.ca, ',', 1, c.lv + 1) - (instr(t.ca, ',', 1, c.lv) + 1)) AS c

ibatis查询SQL语句返回一个对象,此对象包含一个List属性

可能标题说的不是很明白,具体其实就是: 我需要查询一个用户,但是这个用户拥有多张试卷,所以我将试卷这个对象,作为User对象的一个属性,这个属性为List类型.这样我在SQL查询时直接查询user表返回user对象,此user对象包含一个属性(List<Test>多张试卷). java实体类对应关系: public class Test{ private Integer userID; // 主键ID private String username; // 姓名 private String

mysql 存储过程:提供查询语句并返回查询执行影响的行数

mysql 存储过程:提供查询语句并返回查询执行影响的行数DELIMITER $$ DROP PROCEDURE IF EXISTS `p_get_select_row_number`$$ CREATE PROCEDURE `test_cases`.`p_get_select_row_number`(IN p_select_sql VARCHAR(200), OUT p_count INT(8) ) BEGIN -- 声明 DECLARE cnt INT DEFAULT 0; DECLARE s

MySQL information_schema表查询导致内存暴涨

case:下面的一条sql语句,导致mysql实例内存暴涨: select * from tables where table_name not in(select table_name from partitions group by table_name having count(*)>1 ); mysql 5.5, 1w+的innodb表. 下面看下调查的结果: 1.  sql的执行情况以及内存分配:   step1: 构造information_schema.tables临时表 1.1 

SqlServer中循环查询结果集

declare @id int,@value nvarchar(100); begin declare c_test_main cursor fast_forward for select hps_hpId,hps_time from hospitalPermSupp where hps_usId=1; open c_test_main;--打开游标 while 1=1 --开始循环 begin fetch next from c_test_main into @id,@value; --赋值到

Mybatis全部查询遇到的返回类型的小问题

在学习Mybatis3过程中遇到一个小问题,觉得需要注意就把它写下来了 在查询所有数据的时候方法是这样的 public List<User> findAll(){ ..... } 在它的user.xml文件中的sql语句 <select id="findAll"  resultType="User"> select * from user</select> 没有参数,返回的类型不是list,而是List<User>中的

MySQL 整型字段中查询字符串,返回了所有为0的结果

在MySQL中,在整型字段中查询字符串,返回了所有为0的结果,应该返回null或空. 例如表结构信息: CREATE TABLE `t` (   `name` char(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,   `id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 表中数据: mysql> select id from t