Collections 如何使用MyBatis 3.x插入对象集合?

Collections 如何使用MyBatis 3.x插入对象集合?,collections,insert,orm,ibatis,mybatis,Collections,Insert,Orm,Ibatis,Mybatis,我是MyBatis的初学者 我只是想知道如何从类的实例中插入对象集合。假设我有一个类用户与一对多关系中的注释相关。我只想提到,我通过Hibernate的hbm2ddl使用JPA2注释构建了我的模式。我将添加我在下面的示例代码中使用的关键JPA注释 以下是一个示例: @Entity public class User { ... @OneToMany @JoinColumn(name="user") public List<Note> getNotes(

我是MyBatis的初学者

我只是想知道如何从类的实例中插入对象集合。假设我有一个类用户与一对多关系中的注释相关。我只想提到,我通过Hibernate的hbm2ddl使用JPA2注释构建了我的模式。我将添加我在下面的示例代码中使用的关键JPA注释

以下是一个示例:

@Entity
public class User {
    ...
    @OneToMany
    @JoinColumn(name="user")
    public List<Note> getNotes() {...}
    ...
}
@实体
公共类用户{
...
@独身癖
@JoinColumn(name=“user”)
公共列表getNotes(){…}
...
}
现在,每当我在用户表中插入一些内容时,如果列表不是空的,我就必须在Note表中插入实例。注意note表中的@JoinColumn,它应该具有插入用户的id,我已将其设置为自动生成


有人用过这样的东西吗?谢谢。

使用常规MyBatis XML映射配置时,您可以使用以下内容:

Java类:

class EnclosingType {
  private List<ElementType> elements;
}

class ElementType {
  String a;
  String b;
  (...)
}
类封闭类型{
私有列表元素;
}
类元素类型{
字符串a;
b串;
(...)
}
映射器xml:

<mapper
    namespace="my.example.ElementType">
    <insert id="insertElements" parameterType="EnlosingType">
        INSERT INTO ELEMENTTYPE (enclosingTypeId, column_a, column_b)
        VALUES
        <foreach item="element" index="index" collection="elements"
            open="(" separator="),(" close=")">
            #{id}, #{element.a}, #{element.b}
        </foreach>
    </insert>
</mapper>

插入到ELEMENTTYPE(封闭类型ID,a列,b列)
价值观
#{id},{element.a},{element.b}

有没有一种方法可以使用注释实现这一点?据我所知,这是注释无法完成的事情之一。。你的解决方案救了我一天,谢谢!我只是用简单的“,”作为分隔符。谢谢请记住,“全部插入”被视为一个事务,如果您在任何列中使用序列,则不会在此处检查详细答案: