8

MyBatis初心者です。

クラスのインスタンスからオブジェクトのコレクションを挿入する方法を知りたいだけです。1 対多の関係で Note に関連するクラス User があるとします。Hibernate の hbm2ddl を介して JPA 2 アノテーションを使用してスキーマを構築したことを述べたいと思います。以下のサンプル コードで使用した主要な JPA アノテーションを追加します。

サンプルは次のとおりです。

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

ここで、User テーブルに何かを挿入するたびに、リストが空でない場合は Note テーブルにインスタンスを挿入する必要があります。自動生成されるように設定した、挿入されたユーザーの ID を持つ必要がある Note テーブルの @JoinColumn に注意してください。

誰かがこのようなものを持っていますか?ありがとう。

4

1 に答える 1

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>
于 2011-07-14T16:17:44.067 に答える