首页 > 解决方案 > 如何用mybatis注解多对一

问题描述

我希望你能理解我在myBatis 注释中寻找的内容

表 A 为我返回了许多值。表 B 为表 A 的每个值返回一个值。

我想将表 B 中的所有值存储在一个列表中。

我可以通过查询来做到这一点。来自表 A 的一个,获取列表,并对表 B 的查询进行“如果”,并将结果存储在列表中。

但我想看看我是否可以做这样的事情:

@Select(SELECT id FROM table_A WHERE a_value = #{aValue})
@Results({
    @Result(property = "images", javaType = List.class, column="id",
            one= @One(select = "findOneValueInTableB"))})
list<String> fingManyThingsInTableA(string aValue);


@Select(SELECT value FROM table_B WHERE id_table_A = #{id})
String findOnValueInTableB(int id);

不幸的是,这不起作用并给我以下错误:

“嵌套异常是 org.apache.ibatis.exceptions.TooManyResultsException:期望 selectOne() 返回一个结果(或 null),但发现:2”

编辑显示表格和我期待的结果

在此处输入图像描述

预期结果:

[value1, value2, value3, value 4]

感谢您的帮助和建议。

标签: mybatis

解决方案


推荐阅读