?? longtreehibernatedao.java
字號(hào):
package anni.core.web.json;
import java.util.List;
import anni.core.dao.HibernateEntityDao;
/**
* 對(duì)tree進(jìn)行dao操作的基類.
*
* @author Lingo
* @since 2007-09-15
* @param <T> TreeNode
*/
public class LongTreeHibernateDao<T extends TreeNode<T>>
extends HibernateEntityDao<T> {
/**
* 如果數(shù)據(jù)庫(kù)中不存在指定name的記錄,就將此條記錄插入數(shù)據(jù)庫(kù),并返回對(duì)應(yīng)的實(shí)體類.
* 如果數(shù)據(jù)庫(kù)中已經(jīng)存在指定name的記錄,就返回對(duì)應(yīng)的實(shí)體類
*
* @param name 數(shù)據(jù)字典的name
* @return T 返回對(duì)應(yīng)的實(shí)體類
*/
public T createOrGet(String name) {
// 輸入的名稱不應(yīng)該為空.
if ((name == null) || "".equals(name.trim())) {
return null;
}
String beanName = name.trim();
List<T> list = findBy("name", beanName);
// 如果找到記錄,應(yīng)該是只有一項(xiàng)目,就返回這條記錄的實(shí)體類
if (list.size() > 0) {
return list.get(0);
} else {
try {
// 如果沒(méi)找到記錄,需要把這個(gè)數(shù)據(jù)字典保存進(jìn)數(shù)據(jù)庫(kù)
T namedEntityBean = (T) getEntityClass().newInstance();
namedEntityBean.setName(beanName);
save(namedEntityBean);
return namedEntityBean;
} catch (InstantiationException ex) {
// 如果T是抽象類,調(diào)用getEntityClass().newInstance()就會(huì)拋這個(gè)異常
System.err.println(ex);
} catch (IllegalAccessException ex) {
// 沒(méi)有訪問(wèn)權(quán)限的異常,現(xiàn)在還沒(méi)想到達(dá)成的方法
System.err.println(ex);
}
return null;
}
}
/**
* 讀取頂端的隊(duì)列.
*
* @return List.
*/
public List<T> loadTops() {
return find("from " + getEntityClass().getName()
+ " where parent is null");
}
/**
* 讀取頂級(jí)樹(shù)節(jié)點(diǎn).
*
* @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);
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -