小编Joh*_*ong的帖子

使用myBatis映射嵌套的Oracle CURSOR(ResultSet)

是否可以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)

java xml oracle jdbc mybatis

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jdbc ×1

mybatis ×1

oracle ×1

xml ×1