我有一个定义设备实体的设备表:
device:
id:
type:
我有一个属性表,记录设备的属性:
device_attr:
device_id:
key:
value:
如何编写映射器以将设备POJO保存到表中以及如何将属性加载到POJO中?谢谢。
Pivot函数可能会遇到这种情况,但是,mysql不支持它,而且它的性能也不好。
为了保存对象,您可以使用动态sql迭代POJO属性并生成类似于INSERT
中描述的How to use MyBatis to iterate all fields of an object?语句:
<bind name="deviceProperties"
value="@org.apache.commons.beanutils.BeanUtils@describe(myDevice).entrySet()" />
<foreach index="propertyName" item="propertyValue" collection="deviceProperties">
INSERT INTO device_attr (key, value) values (
${propertyName}, ${propertyValue});
</foreach>
对于选择,没有开箱即用的解决方案。
你需要做所谓的qazxsw poi,但这是qazxsw poi qazxsw poi qazxsw poi。
另一种选择是从java中的字段列表重新创建POJO。它可以使用此table pivot
中描述的默认方法在映射器中完成。