⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 longtreehibernatedao.java

📁 anewssystem新闻发布系统集成使用了spring hibernate freemarker EXTJS等开源框架 可以作为学习参考
💻 JAVA
字号:
package anni.core.web.json;

import java.util.List;

import anni.core.dao.HibernateEntityDao;


/**
 * 对tree进行dao操作的基类.
 *
 * @author Lingo
 * @since 2007-09-15
 * @param <T> TreeNode
 */
public class LongTreeHibernateDao<T extends TreeNode<T>>
    extends HibernateEntityDao<T> {
    /**
     * 如果数据库中不存在指定name的记录,就将此条记录插入数据库,并返回对应的实体类.
     * 如果数据库中已经存在指定name的记录,就返回对应的实体类
     *
     * @param name 数据字典的name
     * @return T 返回对应的实体类
     */
    public T createOrGet(String name) {
        // 输入的名称不应该为空.
        if ((name == null) || "".equals(name.trim())) {
            return null;
        }

        String beanName = name.trim();

        List<T> list = findBy("name", beanName);

        // 如果找到记录,应该是只有一项目,就返回这条记录的实体类
        if (list.size() > 0) {
            return list.get(0);
        } else {
            try {
                // 如果没找到记录,需要把这个数据字典保存进数据库
                T namedEntityBean = (T) getEntityClass().newInstance();
                namedEntityBean.setName(beanName);
                save(namedEntityBean);

                return namedEntityBean;
            } catch (InstantiationException ex) {
                // 如果T是抽象类,调用getEntityClass().newInstance()就会抛这个异常
                System.err.println(ex);
            } catch (IllegalAccessException ex) {
                // 没有访问权限的异常,现在还没想到达成的方法
                System.err.println(ex);
            }

            return null;
        }
    }

    /**
     * 读取顶端的队列.
     *
     * @return List.
     */
    public List<T> loadTops() {
        return find("from " + getEntityClass().getName()
            + " where parent is null");
    }

    /**
     * 读取顶级树节点.
     *
     * @param columnName 列名
     * @param sort asc/desc
     * @return List
     */
    public List<T> loadTops(String columnName, String sort) {
        return find("from " + getEntityClass().getName()
            + " where parent is null order by " + columnName + " " + sort);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -