java - JdbcTemplate.query 方法未维护列表中逗号分隔字符串的顺序
问题描述
我在 Oracle DB 中使用 xmlagg 聚合了行数,聚合后 445614935 id 的 DOB 也在 Person_DOB 列中排在首位,其他 id 也是如此。但是当我使用 JdbcTemplate 在 java 中获取这一行时,两个列值的顺序都不会保持。似乎它正在排序我想在列表中以相同的顺序获取数据,它在数据库中显示。
用于按 person_id 聚合的查询是
SELECT rtrim(xmlagg(Xmlelement(e,person_id,',').extract('//text()') order BY person_id).getclobval(),',') AS person_id,
environment,
rtrim(xmlagg(xmlelement(e,person_dob,',').extract('//text()') ORDER BY
person_id).getclobval(),',') AS person_dob
FROM ip_co_wr2_usr.person_details
WHERE status='RFS'
GROUP BY environment,
;
运行此查询后的预期是获取 person_id 和 DOB 将用“,”分隔,维护他们的关系顺序,这也在发生。P1,P2 --> Persion Id 和 dob_p1,dob_p2 --> 人的 DOB
但是当我们尝试使用 JdbcTemplate 在 Person Pojo 类中映射这一行时,属性 person_id 将作为 "P1,P2" 但 dob 属性作为 "dob_p2,dob_p1" 出现。它应该是“dob_p1,dob_p2”
List<Person> triggersList = coJdbcTemplate.query(queryForTrigger,
new BeanPropertyRowMapper<Person>(
Person.class));
解决方案
推荐阅读
- python - 本地 pypi 服务器为 windows、mac 和 linux 用户提供服务
- reactjs - 如何在酶/反应中获取子组件的文本()
- python - 在 Swagger Python 中使用嵌套或列表字段的问题
- java - 在说明符之间使用空格
- python-3.x - 如果forced_glossary 位于/tmp/ 文件夹中,Watson LT SDK create_model() 将失败
- r - R 背包功能
- dart - 在卡片中任意定位小部件(基于相对于父级的 xy 坐标)
- sql - API 到 SQL Server 2017
- fish - Fish shell:如何在提示中禁用“git status”?
- javascript - 当元素具有样式时忽略媒体查询