1 首先,設置斷點追尋在哪可以找到新增的標籤
2 發現如下報錯:java.lang.NumberFormatException
3 再次設置斷點,捕捉數據
4 發現數據位置
5 變更代碼
存在問題:新增數據有三種情況,一種是字符串,一種是數字,一種是數字和id相同(暫且不允許是數字),但現在只能解決第一種
//將id放入list
private List<Long> convertToList(String ids) {
List<Long> list = new ArrayList<>();
List<Tag> tags = tagRepository.findAll();
if (!"".equals(ids) && ids!=null) {
String[] idarr = ids.split(",");
for (int i=0; i<idarr.length; i++) {
if(StringHandler.stringtoLongException(idarr[i])) { //判斷是否爲數字
//將數據封裝爲tag對象,調用save放入數據庫
Tag newTag = new Tag();
newTag.setName(idarr[i]);
saveTag(newTag);
idarr[i] = tagRepository.findByName(idarr[i]).getId().toString();
}
list.add(new Long(idarr[i]));
}
}
return list;
}
package com.lh.daily.handler;
//String異常類
public class StringHandler {
public static boolean stringtoLongException(String str) { //出現字符串轉換異常,說明輸入的是新增數據
try {
new Long(str);
} catch (NumberFormatException e) {
return true;
}
return false;
}
}