Lors de l'interrogation des tables conjointes MyBatis, comment ajouter des alias aux champs de la table de requête principale (solution générale)

De manière générale, il y en aura un dans le fichier XML SQL généré par MyBatis Base_Column_Listpour référence directe lors de la requête. comme suit:

select
<include refid="Base_Column_List" />
from tbl_product
where id = id

Cependant, il est parfois nécessaire d'interroger des tables conjointes. À l'heure actuelle, il n'est évidemment pas possible d'écrire ainsi. Les deux tables sont susceptibles d'avoir de nombreux champs identiques. Dans ce cas, vous devez ajouter des noms de table aux champs interrogés. :

select
tp.id, tp.name, tp....
from tbl_product tp 
left join tbl_mall tm on tp.mall_id = tm.id
where tp.id = id and tm.color = 'red'

Mais chaque fois que vous écrivez une requête de table commune SQL, vous devez le faire une fois, et c'est plus difficile à maintenir.

Nous avons donc la méthode d'écriture suivante :
Tout d'abord, créez-en une Alias_Column_List:

<sql id="Alias_Column_List" >
    ${alias}.id,  ${alias}.name,  ${alias}....
</sql>

Ensuite, lorsque vous écrivez du SQL, citez simplement ce qui suit :

select
<include refid="Alias_Column_List" >
    <property name="alias" value="tp"/>
</include>
from tbl_product tp 
left join tbl_mall tm on tp.mall_id = tm.id
where tp.id = id and tm.color = 'red'

Je suppose que tu aimes

Origine blog.csdn.net/qq_34972627/article/details/132544570
conseillé
Classement