在映射器a中,我得到了一个resultMap
,它包含使用另一个映射器(映射器
B(方法加载的关联,并且映射器上的方法没有参数。
映射程序A中的关联应该是什么样子?
我试过以下几种:
<association property="property" column=""
select="mapperB.findObjectWithNoArguments"
javaType="Object"/>
但这不起作用,加载的值为null(即使它实际上存在并且应该加载(。
删除column
属性会导致解析映射器XML时出错。原因:java.lang.IollegalStateException:映射缺少属性错误的列属性。
事实证明,如果您真的想通过XML进行映射,唯一可能的方法就是添加一个具有truth-y值的伪列,例如:
SELECT
1 AS column_to_force_association
FROM ...
然后在关联中使用这个伪造的列:
<association property="property" column="column_to_force_association"
select="mapperB.findObjectWithNoArguments"
javaType="Object"/>
但这看起来并不是最佳的,所以更好的方法可能是加载没有值的实体,并使用setter在服务中设置它。