Ассоциация MyBatis без колонки - PullRequest
0 голосов
/ 01 ноября 2018

В маппере A Я получил resultMap, который содержит ассоциацию, загруженную с использованием метода другого маппера (mapper B ) и метода маппера B не имеет аргументов.

Как должна выглядеть ассоциация в картографе A ?

Я пробовал следующее:

<association property="property" column=""
             select="mapperB.findObjectWithNoArguments"
             javaType="Object"/>

но это не работает, загруженное значение равно нулю (даже если оно действительно существует и должно быть загружено).

Удаление атрибута column приводит к Ошибка синтаксического анализа Mapper XML. Причина: java.lang.IllegalStateException: в сопоставлении отсутствует атрибут столбца для свойства свойства ошибка.

1 Ответ

0 голосов
/ 01 ноября 2018

Как выясняется, если вы действительно хотите, чтобы сопоставление выполнялось через XML, единственный возможный подход - это добавить поддельный столбец со значением true-y, например, один:

SELECT
  1 AS column_to_force_association
FROM ...

и затем используйте этот поддельный столбец в ассоциации:

<association property="property" column="column_to_force_association"
             select="mapperB.findObjectWithNoArguments"
             javaType="Object"/>

Но это выглядит неоптимально, поэтому лучшим подходом, вероятно, является загрузка объекта без значения и установка его в сервисе с использованием установщика.

...