### Question:
HibernateMenuDAO extends HibernatePersistentObjectDAO<Menu> implements MenuDAO { @Override public void restore(long menuId, boolean parents) throws PersistenceException { bulkUpdate("set ld_deleted=0 where ld_id=" + menuId, null); if (parents) { String query = "select ld_parentid from ld_menu where ld_id =" + menuId; try { List<Long> menus = (List<Long>) super.queryForList(query, Long.class); for (Long id : menus) { if (id.longValue() != menuId) restore(id, parents); } } catch (PersistenceException e) { log.error(e.getMessage(), e); } } } protected  HibernateMenuDAO(); UserDAO getUserDAO(); void setUserDAO(UserDAO userDAO); @Override boolean store(Menu menu); @Override @SuppressWarnings("rawtypes") List<Menu> findByUserId(long userId); @Override List<Menu> findByUserId(long userId, long parentId); @SuppressWarnings("rawtypes") List<Menu> findByUserId(long userId, long parentId, Integer type); @Override List<Menu> findChildren(long parentId, Integer max); @SuppressWarnings("rawtypes") @Override List<Menu> findChildren(long parentId, long userId); List<Menu> findByParentId(long parentId); @Override @SuppressWarnings("rawtypes") boolean isWriteEnable(long menuId, long userId); @Override @SuppressWarnings("rawtypes") boolean isReadEnable(long menuId, long userId); @Override String findNameById(long menuId); @Override List<Long> findMenuIdByUserId(long userId); int isMenuWriteable(long menuId, long userId); @Override boolean hasWriteAccess(Menu menu, long userId); @Override List<Menu> findByGroupId(long groupId); @SuppressWarnings("rawtypes") List<Long> findIdByUserId(long userId, long parentId, Integer type); @Override List<Menu> findByName(String name); @Override List<Menu> findByName(Menu parent, String name, boolean caseSensitive); @Override String computePathExtended(long menuId); @Override List<Menu> findByNameAndParentId(String name, long parentId); @Override List<Menu> findParents(long menuId); @Override void restore(long menuId, boolean parents); @Override List<Long> findMenuIdByUserIdAndPermission(long userId, Permission permission); @Override void deleteAll(Collection<Menu> menus); @Override boolean delete(long menuId, int code); @Override boolean applyRightToTree(long id); @SuppressWarnings("rawtypes") @Override List<Long> findIdByUserId(long userId, long parentId);  }### Answer:
@Test public void testRestore() throws PersistenceException { Menu menu = dao.findById(1000); Assert.assertNull(menu); menu = dao.findById(1100); Assert.assertNull(menu); dao.restore(1100, true); menu = dao.findById(1000); Assert.assertNotNull(menu); menu = dao.findById(1100); Assert.assertNotNull(menu); }