English 中文(简体)
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>
问题回答

暂无回答




相关问题
SQL Copy Row for a list, change one column value

I need to duplicate a row a couple thousand times. I need to change one column from the copied row based on a list of ids. Psuedo-code: INSERT INTO MyTable (TabID, Other Columns) VALUES (TabID = (...

Copy mdf file and use it in run time

After I copy mdf file (and his log file) I tries to Insert data. I receive the following message: "An attempt to attach an auto-named database for file [fileName].mdf failed. A database with the same ...

Inserting trigger (SQL 2005)

I have a temp table (question_desc, ans1, ans2, ans3, ans4, correct_ans, marks) with say 10 entries. From this table I have to insert values in two other tables: questions (q_id(auto-generated), ...

mySQL - Prevent double booking

I am trying to work out the best way to stop double booking in my application. I have a table of unique id s each can be sold only once. My current idea is to use a transaction to check if the ...

热门标签