@Select("select * from exam") @Results( { @Result(property = "eId",column = "e_id"), @Result(property ="cId",column = "c_id"), @Result(property = "startTime",column = "start_time"), @Result(property = "endTime",column = "end_time"), @Result(property = "isExist",column = "is_exist"), @Result(property = "content", column = "p_id", javaType = Papers.class, one = @One(select = "com.zz.dao.PaperDao.getPaperContent") ) } ) public List<Exam> selectAll(); @Select("select content from papers WHERE p_id = #{param01}") String getPaperContent(@Param("param01") Integer pId);我使用上述代码出现了 Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for错误 该如何解决
时间: 2023-07-06 20:03:21 浏览: 55
这个错误通常是由于MyBatis无法找到匹配的SQL语句导致的。请确保你的Mapper XML文件中包含了名为"getPaperContent"的SQL语句,并且这个SQL语句的id值与@One注解中的select属性值相同。另外,也请确保Mapper接口的namespace与Mapper XML文件中的mapper标签的namespace属性值相同。
相关问题
@Select("select * from exam") @Results( { @Result(property = "eId",column = "e_id"), @Result(property ="cId",column = "c_id"), @Result(property = "startTime",column = "start_time"), @Result(property = "endTime",column = "end_time"), @Result(property = "isExist",column = "is_exist"), @Result(property = "content", column = "p_id", javaType = Papers.class, one = @One(select = "com.zz.dao.PaperDao.getPaperContent") ) } ) public List<Exam> selectAll(); @Select("select content from papers WHERE p_id = #{param01}") String getPaperContent(@Param("param01") Integer pId);
这段代码是一个使用 MyBatis 框架进行数据库操作的示例代码。其中的 `@Select` 注解表示执行 SQL 查询语句,`@Results` 注解用于指定查询结果的映射关系。具体来说,这段代码实现了查询所有考试信息的功能,并将查询结果映射为一个包含 `Exam` 对象的列表。同时,由于 `Exam` 对象中包含了一份试卷的 ID,因此在映射结果时,通过 `@One` 注解指定了另一个 SQL 查询语句,用于查询对应试卷的具体内容。这个查询使用了 `@Select` 注解和 `@Param` 注解,用于传递 SQL 语句中的参数。
select * from enp e left join student s on s.eid in(select n.id from enp n where n.pid = e.id and n.pid!=0) where e.pid=0
这是一个带子查询和左连接的SQL语句,其作用是查询所有pid为0的企业(enp)信息,同时将其下属的学生(student)信息也一并查询出来。
具体执行过程如下:
1. 执行子查询,查找所有pid不为0且与当前查询的企业(enp)id相同的企业(enp)id,得到一个结果集。
2. 将子查询的结果集与学生(student)表进行左连接,连接条件为学生表中的eid等于子查询结果集中的id。
3. 将左连接的结果集再与企业(enp)表进行左连接,连接条件为企业表中的id等于学生表中的eid。
4. 在左连接的结果集中筛选出pid为0的企业(enp)信息。
需要注意的是,该SQL语句中使用了子查询,可以导致查询效率较低,需要谨慎使用。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)