2010-08-01 40 views
8

我是MyBatis的初學者。如何使用MyBatis 3.x插入對象的集合?

我只想知道如何從類的實例中插入對象的集合。假設我有一個班級用戶與一對多關係中的筆記相關。我只是想提一下,我通過Hibernate的hbm2ddl使用JPA 2註釋構建了我的模式。我將添加下面示例代碼中使用的關鍵JPA註釋。

這裏有一個例子:

@Entity 
public class User { 
    ... 
    @OneToMany 
    @JoinColumn(name="user") 
    public List<Note> getNotes() {...} 
    ... 
} 

現在,每次我的東西插入到用戶表我要插入情況下進入注表,如果該列表不爲空。注意Note表中的@JoinColumn,它應該有插入用戶的ID,我已經設置爲自動生成。

有沒有人有這樣的工作?謝謝。

+0

查看詳細答案在這裏:HTTP:/ /stackoverflow.com/questions/23486547/mybatis-batch-insert-update-for-oracle?answertab=votes#tab-top – 2016-02-26 12:27:55

回答

10

在使用正則MyBatis的XML映射配置,你可以使用這樣的事情:

Java類:

class EnclosingType { 
    private List<ElementType> elements; 
} 

class ElementType { 
    String a; 
    String 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> 
+6

有沒有辦法做到這一點使用註釋? – sheki 2012-02-01 20:28:14

+0

據我瞭解,這將是其中一個註釋不能做的事 – eaglestorm 2013-03-13 10:59:18

+0

哇......你的解決方案拯救了我的一天,謝謝!我用簡單的「,」作爲分隔符。謝謝! – ronkot 2014-08-20 10:07:49