Возможно ли сопоставить вложенный java.sql.ResultSet
в myBatis resultMap
?Сопоставление вложенного Oracle CURSOR (ResultSet) с myBatis
Например. Скажем, что у меня есть сопоставление процедур, определенное так:
<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>
И мой картограф. которая возвращает список объектов автомобиля, но и список дилеров (вложенная 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 -->
Проблема здесь в том, когда я осмотреть полученный объект Java dealerships
является пустой список.
Я написал простой простой java.sql код JDBC, и он отлично работал. Кани кто-нибудь посадил меня на правильный путь? Я полностью потерял это.
Заранее спасибо.
Вот ожидаемый результат SQL:
Car
|name |dealerships|
|nissan|ref_cursor|
Dealership
|location |established|....
|.... |1974 |...
Автомобили Модель:
public class Car {
private String name;
private List<Dealership> dealerships;
// getters & setters ...
}
public class Dealership {
private String model;
private Integer year;
// getters & setters ...
}
обновлено описание, чтобы получить немного больше информации по этой проблеме. @diziaq – JohnStrong
Пожалуйста, добавьте код процедуры PL/SQL 'getCarsByYear'. – diziaq