@Transactional
@SuppressWarnings("unchecked")
public boolean removeNode(Class<? extends AbstractHierarchyNode> nodeClass, UUID id) throws Exception {
Assert.notNull(id);
Assert.notNull(nodeClass);
AbstractHierarchyNode node = dao.find(nodeClass, id);
dao.remove(node.getHierarchy());
return true;
}