文艺Expectedoneresult(ornull)tobereturnedbylect。。。
mybatis会根据查询的结果集初始化java实例。
聪明在于学习
如果是复杂类型,我们⼀般都会在mapper中做好映射。
大学生培训
1.所以如果查询到的是多个结果,那么对应的java类型也必须的集合类型。(result 为泛型或者集合元素类型,dao接⼝必须为集合)
耀武扬威的近义词 如: xml:<lect id='xx' resultType='java.lang.String'> 接⼝:String[] xx();
2.但是有⼀种,结果集虽然是多个,但是需要是⼀个实例。
修建性详细规划逐渐的近义词是什么 如:查询班级及学⽣ SELECT * FROM clazz LEFT JOIN student on。。。。
我们对应java实例就是clazz即{ clazzName, student[] }。
所以这条语句,只要不是只有⼀个学⽣那么肯定会有多条结果。但是我们需要mybatis为我们创建⼀个实例。
这个也就是 resultMap,resultType 的区别。resultMap 是我们做好映射关系的,⾥⾯有collection属性,系统清理软件
车祸报警电话所以mybatis会为我们创建⼀个实例。
如果使⽤resultType ,mybatis就会说:Expected one result (or null) to be returned by lectOne() 。查出来好⼏个,你就要⼀个,要哪个啊?
所以,出现这个问题 Expected one result (or null) to be returned by lectOne()。第⼀是产⽣多个结果,我们也要多个,但是接收类型写错了。第⼆就是产⽣多个,但是我们需要⼀个,(因为多个结果其实对java是⼀个实例)那么就是映射没有做好,或者使⽤了resultType,⽽不是resultMap。