Fortsetzung vom letzten Mal, hörte ich, dass ich wieder süchtig nach der seltsamen Bewegung von My Batis war. Das heißt, im Grunde bin ich ein bisschen schlampig, und derjenige, der einen Fehler gemacht hat, ist ein schlechtes Geschäft. Ich denke nicht, dass MyBatis schlecht ist (nein, ich denke, es ist schlecht) Überraschenderweise kann ich selbst keine Fehler finden und verschwendete Zeit verbringen. Ich denke, es ist selten, also lasse ich es, damit ich es sofort lösen kann, wenn jemand eines Tages ein ähnliches Problem hat.
Die Version von MyBatis ist 3.2.
Aus irgendeinem Grund wurden die von Javas "Integer" gespeicherten Daten nicht in die Spalte "NUMERIC" der Datenbank eingegeben. (Ich habe den Fehler, der tatsächlich ausgespuckt wurde, nicht erhalten, also werde ich ihn später einfügen!) Bestimmt
** Wenn Sie "String" -Daten in eine "NUMERIC" -Spalte einfügen möchten, geben Sie explizit CAST! ** ** **
Ich denke, es war so ein Fehlerinhalt.
e? Warum "String"? Ich habe eine Ganzzahl ...? Es ist der Inhalt.
ItemService.java
//Verschiedene Auslassungen
...
...
...
List<Integer> itemMasterIds = itemMasterMapper.getIdsByCategoryName("Tapioka");
//↓ ↓ Ich erhalte hier einen Fehler ↓ ↓
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>
Vielleicht werden die meisten Leute es sofort herausfinden, indem sie sich den obigen Code ansehen.
Setzen Sie in ItemMasterMapper.xml`` resultType
von getIdsByItemCategory
,
Du hast "string" geschrieben.
<select id="getIdsByItemCategory" resultType="string">
Normalerweise ist der Rückgabetyp in der Mapper-Schnittstelle und definiert
Wenn der in Mapper XML definierte resultType
nicht übereinstimmt,
Ich denke, dass an diesem Punkt ein Fehler auftreten wird, aber aus irgendeinem Grund ist "item_master.item_master_id"
Sie können es mit List
of String
bekommen, nicht wahr?
Ich kann einen solchen Fehler nicht sofort finden, oder er ist bereits die Grenze.
Recommended Posts