java - Bagaimana untuk memetakan satu-ke-banyak dalam Mybatis
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-17 10:07:25
0
3
579

Contohnya, ada kelas entiti

public class AnswerDto{ //一个回复的类,一个问题可能会有多个回复
    int id;
    int askId;//问题id
    List<String> answers; //回复的列表
}

Saya pada asalnya menulis ini, tetapi ia salah T0T, bagaimana saya harus memetakan kandungan ke Senarai<String>

<select id="getAns" parameterType="int" resultMap="uiy">
    select
    id, 
    ask_id AS "askId",
    content
    from t_answer where ask_id = #{_parameter}
</select>

<resultMap type="AnswerDto" id="uiy">
    <id property="id" column="id"/>
    <result property="askId" column="askId" />
    <collection property="ls" ofType="string">
        <constructor>
            <arg column="content"/>
        </constructor>
    </collection>
</resultMap>
曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(3)
伊谢尔伦

mybatis menentukan hubungan pemetaan yang ditetapkan berdasarkan tag <id> Jika anda mesti menggunakan jadual anda, anda boleh memetakannya seperti ini

<id column="askId" property="askId" />
<result column="id" property="id"/>
<collection property="answers" ofType="java.lang.String" javaType="java.util.List">
    <result column="content" />
</collection>
左手右手慢动作

Poster asal sepatutnya mempunyai satu jadual yang hilang di sini, iaitu jadual soalan.

Bersempena dengan jadual masalah, definisi DTO sepatutnya seperti ini.

public class QuestionDTO {
     int questionId;
     String questionDesc;
     List<AnswerDTO> answers; // Answers of the question
     int created; // 创建时间
     int updated; // 更新时间
}

public class AnswerDTO{ //一个回复的类,一个问题可能会有多个回复
    int id;
    int questionId; // 问题id
    String content; // 答案内容
    int created; // 创建时间
    int updated; // 更新时间
}

Pada masa ini, terdapat banyak penyelesaian pertanyaan berkaitan untuk mybatis, saya akan sertakan pautan.

Pertanyaan berkaitan Mybatis (pertanyaan bersarang)

Terdapat banyak maklumat dalam talian tentang

mybatis Anda boleh mencari lebih banyak.

Akhir sekali, saya ingin membuat cadangan, sebaiknya jangan lakukan pertanyaan berkaitan. Logik pemasangan data diletakkan dalam kod, yang memudahkan transformasi DB masa hadapan. Kerana apabila jumlah data menjadi lebih besar dan lebih besar, prestasi pertanyaan berkaitan adalah lemah, dan bukan mudah untuk mengubah sub-pangkalan data dan sub-jadual Walau bagaimanapun, ini semua berdasarkan pertumbuhan besar perniagaan. Pada masa ini, ada baiknya jika poster itu mula memupuk kesedaran ini.

给我你的怀抱

Pemetaan medan jadual ke medan objek kompleks boleh dilakukan menggunakan TypeHandler tersuai.
cth:
Pemetaan medan json ke kelas Java dalam MyBatis
http://www.cnblogs.com/watery...

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan