javapage.java
来自「Hibernate开发及整合应用大全 蔡雪焘编著 本书用典型的示例剖析Hiber」· Java 代码 · 共 118 行
JAVA
118 行
/* * Created on 27-09-2003 * * To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */package net.sf.hibernate.console;import java.sql.SQLException;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Map;import net.sf.hibernate.Criteria;import net.sf.hibernate.HibernateException;import net.sf.hibernate.Session;import net.sf.hibernate.engine.SessionImplementor;import net.sf.hibernate.impl.SessionImpl;import bsh.EvalError;import bsh.Interpreter;/** * @author MAX * * To change the template for this generated type comment go to * Window - Preferences - Java - Code Generation - Code and Comments */public class JavaPage extends AbstractQueryPage { private String criteriaCode; Criteria criteria = null; private Interpreter ip; /** * @param session2 */ public JavaPage(String criteriaCode) { this.criteriaCode = criteriaCode; } public void setSession(Session s) { super.setSession(s); try { ip = setupInterpreter(getSession()); Object o = ip.eval(criteriaCode); // ugly! TODO: make un-ugly! if(o instanceof Criteria) { criteria = (Criteria) o; } if (o instanceof List) { list = (List) o; } else { list = new ArrayList(); list.add(o); } } catch (EvalError e) { addException(e); } catch (HibernateException e) { addException(e); } } private Interpreter setupInterpreter(Session session) throws EvalError, HibernateException { Interpreter ip = new Interpreter(); ip.set("session", session); SessionImplementor si = (SessionImplementor)session; Map map = si.getFactory().getAllClassMetadata(); Iterator iterator = map.keySet().iterator(); String imports = new String(); while (iterator.hasNext()) { Class element = (Class) iterator.next(); imports += "import " + element.getName() + ";\n"; } imports += "import net.sf.hibernate.expression.*;\n"; imports += "import net.sf.hibernate.*;\n"; ip.eval(imports); return ip; } public List getList() { if(list!=null) return list; try { if(criteria!=null) { list = criteria.list(); } else { return Collections.EMPTY_LIST; } } catch (HibernateException e) { addException(e); } return list; } public List getPathNames() { List l = new ArrayList(); l.add("<no info>"); return l; } public String getQueryString() { return criteriaCode; } public void release() { super.release(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?