Par exemple, il existe une classe d'entité
public class AnswerDto{ //一个回复的类,一个问题可能会有多个回复
int id;
int askId;//问题id
List<String> answers; //回复的列表
}
J'ai écrit ceci à l'origine, mais c'était faux T0T, comment dois-je mapper le contenu sur List<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>
mybatis détermine la relation de mappage définie en fonction de la balise
.<id>
Si vous devez utiliser votre table, vous pouvez la mapper comme ceciL'affiche originale devrait avoir une table manquante ici, qui est la table des questions.
Avec le tableau de questions, la définition de DTO devrait être comme ceci.
À l'heure actuelle, il existe de nombreuses solutions de requêtes associées pour mybatis, je joindrai un lien.
Requête associée à Mybatis (requête imbriquée)
Il existe de nombreuses informations en ligne sur les requêtes liées à mybatis. Vous pouvez en rechercher davantage.
Une dernière suggestion, il est préférable de ne pas effectuer de requêtes associées. La logique d'assemblage des données est placée dans le code, ce qui facilite la future transformation de la base de données. Car à mesure que la quantité de données devient de plus en plus grande, les performances des requêtes associées sont médiocres et il n'est pas facile de transformer la sous-base de données et les sous-tables. Cependant, tout cela repose sur la croissance substantielle de l'entreprise. À l’heure actuelle, il serait bon que l’affiche commence à cultiver cette prise de conscience.
Le mappage des champs de table vers des champs d'objets complexes peut être effectué à l'aide d'un TypeHandler personnalisé.
eg :
Mappage des champs json vers les classes Java dans MyBatis
http://www.cnblogs.com/watery...