gpt4 book ai didi

java - MyBatis 将结果映射到 MyBatisRepository 中的 List

转载 作者:行者123 更新时间:2023-12-01 16:47:00 29 4
gpt4 key购买 nike

我的数据库中有一行 enter image description here

和java函数

@Select("<script>\n" +
"SELECT TARIFF FROM MY_TABLE WHERE ROW_ID = #{id}\n" +
"</script>\n")
List<String> findTariffById(@Param("id") String id);

如果我添加@ResultType(String.class) ,我得到包含 1 个元素的列表:“classic;premium;my-conversation”

但是我需要获取包含 3 个元素的列表:

“经典”

“高级”

“我的对话”

如果我有 POJO 类关税

@Data
public class Tariff{

private List<String> name;

}

我可以将我的功能更改为

@Select("<script>\n" +
"SELECT TARIFF FROM MY_TABLE WHERE ROW_ID = #{id}\n" +
"</script>\n")
@Results({
@Result(property = "name", column = "TARIFF", typeHandler = StringArrayListTypeHandler.class)}
)
Tariff findTariffById(@Param("id") String id);

要快乐..

但是,我需要得到 List<String>

我可以得到 List<String>不创建POJO?

附注StringArrayListTypeHandler 将字符串解析为列表

最佳答案

您可以从第一个结果开始,并将其拆分为数组列表。在我的代码摘录中,起始列表是空的,但正如所评论的,您应该使用从数据库初始化的大小为一的列表。所以你手动用分隔符“;”分割字符串。

        List<String> returnedListOfSizeOne = new ArrayList<>(); //.add("classic;premium;my-conversation")
List<String> properlySplitString = new ArrayList<>();
for(String string: returnedListOfSizeOne){
Collections.addAll(properlySplitString,string.split(";"));
}

关于java - MyBatis 将结果映射到 MyBatisRepository 中的 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61752894/

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