1

再帰関数を使用してデータベースからメニューモデルを生成する方法を知りたいです。私はすでにこのクラスを作成していますが、機能していません。私を助けてください、私はすでに1週間見つけて試しています。ありがとう

public class MenuDAOImpl extends ManagerBase<MenuMaster> implements MenuDAO {

    private List<MenuMaster> list;
    private List<MenuData> datas;

    @Override
    public MenuModel getMenu() {
        MenuModel model = new DefaultMenuModel();
        String[] orders = new String[]{"id"};
        try {
            list = getBySQLQuery("PARENT_MENU_ID=0", orders, 1000);
            for (MenuMaster menuMaster : list) {
                menuChild(menuMaster);
            }
        } catch (Exception e) {
        }
        return model;
        // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    private List<MenuData> menuChild(MenuMaster master) {
        List<MenuData> listChild = new ArrayList<MenuData>();
        String[] orders = new String[]{"id"};
        try {
            MenuData data = new MenuData();
            data.mm = master;
            data.mms = getBySQLQuery("PARENT_MENU_ID=" + master.getParentMenuId(), orders, 1000);
            listChild.add(data);
        } catch (Exception e) {
        }
        return listChild;
    }

    public class MenuData {

        private MenuMaster mm;
        private List<MenuMaster> mms;

        public MenuData() {
        }

        public MenuMaster getMm() {
            return mm;
        }

        public void setMm(MenuMaster mm) {
            this.mm = mm;
        }

        public List<MenuMaster> getMms() {
            return mms;
        }

        public void setMms(List<MenuMaster> mms) {
            this.mms = mms;
        }
    }
}

これは私のデータベース テーブルです (申し訳ありませんが、画像をアップロードできません)。

ID | MENU_NAME | DISPLAY_NAME | URL |PARENT_MENU_ID |
1 | 従業員 | 従業員 | /従業員.xhtml | 0 |
2 | 従業員メニュー| 従業員 | /従業員.xhtml | 1 |
3 | ユーティリティ | ユーティリティ | | | 0 |
7 | asdf | asdf | | | 6 |
6 | ユーティリティメニュー | テスト | | | 3 |
5 | ユーティリティデータ | 管理者設定 | asdf | 3 |
4 | メニュー | メニューエディター | /utility/menu.xhtml | 3 |

4

1 に答える 1