2010-08-01 18 views
8

Ben MyBatis ile yeni başlayan biriyim.MyBatis 3.x kullanarak nesne koleksiyonunu nasıl eklerim?

Sadece bir sınıf örneğinden bir nesne koleksiyonu eklemeyi öğrenmek istiyorum. Bire-bir ilişkide bir Not ile ilgili bir Sınıf Kullanıcı var diyelim. Şemamı, Hibernate'in hbm2ddl üzerinden JPA 2 ek açıklamalarını kullanarak oluşturduğumu belirtmekten hoşlanırım. Aşağıdaki örnek kodda kullandığım anahtar JPA ek açıklamalarını ekleyeceğim.

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

Şimdi, her şey listesi boş değilse ben Not tabloya örneklerini eklemek zorunda Kullanıcı tabloya şey eklemek:

İşte bir örnek verilmektedir. Otomatik olarak oluşturulacak eklenmiş Kullanıcı'nın kimliğine sahip Not tablosunda @JoinColumn'a dikkat edin.

Bunun gibi bir şeyleri olan var mı? Teşekkürler.

+0

Kontrol detay için Cevap: http://stackoverflow.com/questions/23486547/mybatis-batch-insert-update-for-oracle?answertab=votes#tab-top –

cevap

10

böyle bir şey kullanabilirsiniz düzenli MyBatis XML eşleme yapılandırma kullanırken:

Java sınıfları:

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> 
+6

Bunu ek açıklamaları kullanarak yapmanın bir yolu var mı? – sheki

+0

Anladığım kadarıyla bu, ek açıklamaların yapamayacağı şeylerden biri olurdu – eaglestorm

+0

Whoa .. Çözümünüz günümü kurtardı, teşekkürler! Ayırıcı olarak sadece basit "," kullanıyordum. Teşekkürler! – ronkot