MyBatis关联(无列)

时间:2018-11-01 15:09:10

标签: associations mybatis spring-mybatis

在映射器 A 中,我得到了一个resultMap,其中包含使用另一个映射器(映射器 B )方法和映射器上的方法加载的关联< strong> B 没有参数。

关联在映射器 A 中的外观如何?

我尝试了以下操作:

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

但这不起作用,加载的值为null(即使它确实存在并且应该加载)。

删除column属性会产生解析Mapper XML的错误。原因:java.lang.IllegalStateException:属性缺少映射映射列属性错误。

1 个答案:

答案 0 :(得分:0)

事实证明,如果您真的想通过XML完成映射,则唯一可能的方法是添加一个带有true-y值的伪列,例如一个:

SELECT
  1 AS column_to_force_association
FROM ...

,然后在关联中使用此伪造的列:

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

但这似乎无处可寻,因此更好的方法是在没有值的情况下加载实体,然后使用设置器将其设置在服务中。