MyBatis,插入复杂对象

我有以下情况:

public class MyObj{ private String myField_1 private String myField_2 private MyChildObj myChild // Constructor & get/set } public class MyChildObj{ private String myField_3 private String myField_4 // Constructor & get/set } 

在我的Query.xml上,我用这种方式写了插入:

  INSERT INTO MY_TABLE ( FIELD_1, FIELD_2, FIELD_3, FIELD_4) values ( #{myField_1}, #{myField_2}, #{myField_3}, #{myField_4}, )  

阅读mybatis结果地图指南后,我尝试在mybatis-config.xml文件中添加以下行:

              

但我一直收到以下错误:

 ### Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: xx; columnNumber: xx; Element type "resultMap" must be declared. 

任何人都可以澄清我如何设置这个?

resultMap属性需要引用结果映射的名称,而不是Java类型:

但是,如果MyChildObject作为单独的表存储在数据库中, 则不支持嵌套插入。 您需要在Java中调用两个插入。 ResultMaps用于选择

如果您只是将一个表中的几列放在一个单独的对象中,那么可以使用点表示法myChildObject.myField_4来完成此myChildObject.myField_4 。 像这样的东西:

  INSERT INTO MY_TABLE ( FIELD_1, FIELD_2, FIELD_3, FIELD_4) values ( #{myField_1}, #{myField_2}, #{myChildObject.myField_3}, #{myChildObject.myField_4}, )