Suite de la dernière fois, j'ai entendu dire que j'étais à nouveau accro à l'étrange mouvement de My Batis. Cela dit, au fond, je suis un peu bâclé et celui qui a commis une erreur est une mauvaise affaire. Je ne pense pas que MyBatis est mauvais (non, je pense que c'est mauvais) Étonnamment, je ne trouve aucune erreur moi-même et je passe du temps perdu. Je pense que c'est rare, alors je vais le laisser pour que si quelqu'un a un jour un problème similaire, je puisse le résoudre immédiatement.
La version de MyBatis est 3.2.
Pour une raison quelconque, les données détenues par ʻInteger de Java ne sont pas entrées dans la colonne
NUMERIC` de la base de données.
(Je n'ai pas eu l'erreur qui a été réellement crachée, donc je la collerai plus tard!)
Certainement
** Si vous voulez mettre des données String
dans une colonne NUMERIC
, CAST explicitement! ** **
Je pense que c'était un contenu d'erreur comme ça.
e? Pourquoi String
? J'ai ʻInteger` ...? C'est le contenu.
ItemService.java
//Diverses omissions
...
...
...
List<Integer> itemMasterIds = itemMasterMapper.getIdsByCategoryName("Tapioca");
//↓ ↓ J'obtiens une erreur ici ↓ ↓
userItemsMapper.add(user.getId(), itemMasterIds);
ItemMasterMapper.java
List<Integer> getIdsByCategoryName(@Param("categoryName") String categoryName);
ItemMasterMapper.xml
<select id="getIdsByCategoryName" resultType="string">
SELECT item_master_id FROM item_master WHERE category = #{categoryName}
</select>
UserItemsMapper.java
void add(@Param("userId") long userId, @Param("itemMasterIds") List<Integer> itemMasterIds);
UserItemsMapper.xml
<insert id="add">
INSERT INTO user_items (user_id, item_master_id)
VALUES
<foreach collection="itemMasterIds" item="item" separator=",">
(#{userId}, #{item})
</foreach>
</insert>
Peut-être que la plupart des gens le découvriront instantanément simplement en regardant le code ci-dessus.
ʻDans ItemMasterMapper.xml, définissez
resultTypede
getIdsByItemCategory`,
Vous avez écrit «string».
<select id="getIdsByItemCategory" resultType="string">
Normalement, le type de retour défini dans l'interface Mapper et
Si le resultType
défini dans Mapper XML ne correspond pas,
Je pense qu'une erreur se produira à ce stade, mais pour une raison quelconque, ʻitem_master.item_master_id ʻis
Vous pouvez l'obtenir avec List
of String
, n'est-ce pas?
Je ne peux pas trouver une erreur comme celle-ci tout de suite, ou c'est déjà la limite.
Recommended Posts