menu.getParent_id()
всегда будет возвращать ноль для самого верхнего Menu
, потому что у него нет родителя.Поскольку обход меню начинается с самого верхнего Menu
, вам необходимо обработать этот конкретный случай.
Во-первых, вам нужен способ представления Menu
без родителя в таблице базы данных.Например, вы можете выбрать NULL для представления этого.Затем обработайте регистр:
if(menu.getParent_id() == null) {
statement.setNull(3, java.sql.Types.INTEGER);
else {
statement.setInt(3, menu.getParent_id());
}
Вам также необходимо создать меню в базе данных перед рекурсивным вызовом метода.В противном случае menu.getParent_id()
будет возвращать ноль для каждые Menu
, а не только для самого верхнего.Так что это должно произойти до создания подменю: int res = statement.executeUpdate();