Почти. Если вы выберете идентификатор Foo в своем запросе, вы можете заставить карту результатов Fizz выполнить SELECT для этого идентификатора, которая будет использовать карту результатов Foo.
<result property="Foo1" column="bar1Id" select="selectFoo"/>
(Предполагается, что у вас определен запрос selectFoo
.) Но это очень медленно для больших наборов результатов, поскольку он выполняет дополнительный SELECT для каждой строки.
iBATIS имеет решение этой проблемы для типичного случая, когда у вас есть составной объект, который содержит различные другие объекты. Сначала вы определяете запрос, который объединяет ваши таблицы, затем вы можете использовать fooMap
для заполнения Foo
:
<result property="Foo1" resultMap="fooMap"/>
Но вы не можете использовать эту карту результатов дважды для двух разных Foos
, потому что карта результатов указывает определенные имена столбцов. Вы можете использовать другую технику, хотя:
<result property="foo1.bar" column="foo1bar"/>
<result property="foo2.bar" column="foo2bar"/>
Подробнее на странице 35 руководства iBatis Datamapper.