gpt4 book ai didi

jointable - 在 CrudRepository(Spring data jdbc) 上使用 @query 和表连接

转载 作者:行者123 更新时间:2023-12-04 10:59:15 24 4
gpt4 key购买 nike

我正在使用 @query 尝试 spring data jdbc,但我遇到了一个问题:如果我有一个连接 2 的查询
像这样的表:

@Query("select a.*, b.* from master a, detail b where b.master_id=a.id and a.id=:id") 

我如何得到回应?
官方 Spring Data JDBC, References, and Aggregates没有给出任何提示。
有什么建议吗?

最佳答案

您有多种选择:

使用默认 RowMapper

使用具有您选择的所有字段的属性的类(或该类的集合)作为返回类型。
这将为每一行返回一个元素。

由于您将这两个表称为 masterdetail在这种情况下,您可能不希望这样。

使用自定义 RowMapper

@Query annotation allows you to specify your own rowMapperClass 它将被实例化并传递给 NamedParameterJdbcTemplate连同您的查询。

同样,这将导致每行选择的结果元素,因此可能不是您想要的。

使用自定义 ResultSetExtractor

This can be again specified in the @Query annotation .
并允许您以任意方式构建结果。
请参阅 ResultSetExtractor 的文档更多细节。

备注:如果您使用的是 ResultSetExtractor创建单个 Master与多个 Detail来自查询结果多行的实例确保添加 ORDER BY master.id .否则,行的顺序可能符合要求,但实际上不能保证。

关于jointable - 在 CrudRepository(Spring data jdbc) 上使用 @query 和表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58941064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com