我有一个与它存储在 MySQL 中的表匹配的运输信息对象,除了“地址”是一个对象(在对象中)但它是数据库表中的 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 并且查询返回零结果时。它似乎将地址设置为一个实例的空地址对象,其余的都设置为空。