是否可以java.sql.ResultSet在myBatis中映射嵌套resultMap?
例如.假设我有一个像这样定义的过程映射:
<select id="selectBlog" statementType="CALLABLE">
{call getCarsByYear(
#{year,jdbcType=INTEGER,mode=IN},
#{results, jdbcType=CURSOR, mode=OUT, javaType=java.sql.ResultSet, jdbcType=CURSOR, resultMap=cars}
)}
</select>
Run Code Online (Sandbox Code Playgroud)
还有我的映射器.它返回一个汽车对象列表,还有一个经销商列表(嵌套的CURSOR):
<resultMap id="cars" type="some.package.Car">
<result property="name" column="car_name">
<!-- here is my problem -->
<collection property="dealerships" column="dealerships_rf" ofType="some.package.Dealership">
<result property="model" column="model" />
<result property="year" column="year" />
</resultMap>
<!-- dealership resultMap of type some.package.Dealership -->
Run Code Online (Sandbox Code Playgroud)
这里的问题是,当我检查生成的java对象dealerships是一个空List.
我写了一些简单的旧java.sql JDBC代码,它运行正常.有人把我放在正确的道路上?我完全迷失了这个.
提前致谢.
这是预期的SQL输出:
Car
|name |dealerships|
|nissan|ref_cursor|
Dealership
|location |established|....
|.... |1974 |...
Run Code Online (Sandbox Code Playgroud)
汽车型号:
public class Car {
private String name;
private List<Dealership> …Run Code Online (Sandbox Code Playgroud)