2010-08-01 11 views
8

Sono un principiante con MyBatis.Come inserire la raccolta di oggetti usando MyBatis 3.x?

Voglio solo sapere come inserire una raccolta di oggetti da un'istanza di una classe. Supponiamo che io abbia un utente di classe in relazione a una nota nella relazione uno a molti. Mi piace solo ricordare che ho creato il mio schema usando annotazioni JPA 2 tramite hbm2ddl di Hibernate. Aggiungerò le annotazioni JPA chiave che ho usato nel seguente codice di esempio.

Ecco un esempio:

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

Ora, ogni volta che inserire qualcosa nella tabella utente devo inserire le istanze nella tabella Nota se l'elenco non è vuoto. Prendi nota della @JoinColumn nella tabella Note che dovrebbe avere l'id dell'utente inserito, che ho impostato per essere autogenerato.

Qualcuno ha qualcosa di simile a questo? Grazie.

+0

check dettaglio risposta qui: http://stackoverflow.com/questions/23486547/mybatis-batch-insert-update-for-oracle?answertab=votes#tab-top –

risposta

10

Quando si utilizza un normale MyBatis mapping XML di configurazione si può usare qualcosa di simile:

classi Java:

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

c'è un modo per farlo usando le annotazioni? – sheki

+0

Come ho capito, questa sarebbe una di quelle cose che le annotazioni non possono fare – eaglestorm

+0

Whoa .. La tua soluzione mi ha salvato la giornata, grazie! Stavo usando semplicemente "," come separatore. Grazie! – ronkot

Problemi correlati