开发者

How do I insert collection of objects using MyBatis 3.x?

I'm a beginner with MyBatis.

I just want to know how to insert a collection of objects from an instance of a class. Say I have a class User related to a Note in one-to-many relationship. I just like to mention that I built my schema using JPA 2 annotations via Hibernate's hbm2ddl. I'll add the key JPA annotations I used in the sample code below.

Here's a sample:

@Entity
public class User {
    ...
    @OneToMany
    @JoinColumn(name="user")
    public List<Note> getNotes() {...}
    开发者_如何学运维...
}

Now, everytime I insert something into User table I have to insert instances into the Note table if the list is not empty. Take note of the @JoinColumn in Note table which should have the id of the inserted User, which I have set to be autogenerated.

Has anyone got something like this working? Thanks.


When using a regular MyBatis XML mapping config you can use something like this:

Java classes:

class EnclosingType {
  private List<ElementType> elements;
}

class ElementType {
  String a;
  String b;
  (...)
}

Mapper 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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜