我有一个sql表,里面有id、code、code_parent和code类型。
id code code_parent type
1 banane fruit CU
2 fruit food GU
3 food eat BU
4 tomato vegetable BU
我试图写一个循环,以便为每一个代码,一个代码的父级BU,例如,水果与ID 2,有食物的父级,但GU级别是不同的BU,所以在这种情况下,我会寻找食物的父级,我会考虑作为代码,在ID = 3有食物与3级,所以它的结果,总的来说,我将会得到。
id code code_parent type
1 banane food BU
2 fruit food BU
3 food eat BU
4 tomato vegetable BU
我试过这个,但它的工作,请如果你有任何想法帮助。
private void insertParentBu(List<Map<String, Object>> parentBu) {
parentBu.forEach(row -> {
String insertParentBu = "INSERT INTO `parent_bu` (`uo`,`parent_bu`,`type_parent`)" +
"VALUES (?, ?, ?)";
myrefJdbcTemplate.update(insertParentBu, preparedStatement -> {
logger.info("Inserting uo {} , parent {}, level {}" , row.get("code"), row.get("code_parent") , row.get("level"));
preparedStatement.setString(1, String.valueOf(row.get("code")));
preparedStatement.setString(2, String.valueOf(row.get("code")));
preparedStatement.setString(3, String.valueOf(row.get("level")));
});
String updateBuparent = "UPDATE `parent_bu` SET `parent_bu` = ? , `type_parent` = ? WHERE `uo` = ? AND type_parent <> 'BU' AND parent_bu <> '' ";
myrefJdbcTemplate.update(updateBuparent, preparedStatement -> {
preparedStatement.setString(1,String.valueOf(row.get("code_parent")));
preparedStatement.setString(2,String.valueOf(row.get("level")));
preparedStatement.setString(3,String.valueOf(row.get("code")));
});
}
);
}