我有一个发货信息对象与它存储在MySQL中的表相匹配,但“地址”是一个对象(在对象中),但它是DB表中的AddressId。我当前的结果图如下所示:
<resultMap type="ShippingInfo" id="shippingInfoResult">
<result column="orderItemId" property="orderItemId" />
<result column="shipingDate" property="shippingDate" javaType="java.sql.Date" />
<result column="numberShipped" property="numberShipped" />
<result column="carrier" property="carrier" />
<result column="tracking" property="tracking" />
<result column="shippingType" property="shippingType" />
<association property="address" column="addressId" javaType="com.Foo.Bar.address.Address" select="com.Foo.Bar.address.AddressMapper.read" />
</resultMap>
我一直在试图弄清楚如何让MyBatis根据查询中返回但尚未成功的addressId来选择地址。它当前将address的值设置为null,而不是我期望它做的空Address对象。
是否可以这样做或者我是否需要以不同方式格式化我的查询以包含更多数据? 我是否需要做其他不同的事情,以便至少将地址字段设置为空地址而不是空?
感谢您的帮助。
更新 我想澄清一下,如果有一个与addressId匹配的地址,它会毫无问题地提取所述地址并填充它。我遇到的问题是当id设置为0并且查询返回零结果时。它似乎是将地址设置为一个实例的空地址对象,其余的都设置为空。
答案 0 :(得分:0)
如果您使用此设置,请查看是否有帮助:
<setting name="callSettersOnNulls" value="true"/>