以编程方式指定要在Hibernate中加载的类

时间:2012-05-03 15:33:41

标签: java hibernate class load

很抱歉这看起来有点简单,但有没有办法通过将类指定为查询变量来从Hibernate加载数据库中的对象?

即:

我有

ClazzA,ClazzB,ClazzC

所有三个类都映射到db

中的表ClazzA,ClazzB和ClazzC

我想有一个像这样的变量:

Class clazz = obj.getClass();

然后能够通过将类指定为查询构造的一部分来填充查询:

列出objs = session.createQuery(...)... .list();

有办法做到这一点吗?

3 个答案:

答案 0 :(得分:2)

使用HQL查询没有优雅的方法,但您可以使用Criteria API:

List objs = session.createCriteria(clazz).list();

另见:

答案 1 :(得分:1)

String hql = "select o from " + clazz.getName() + " o where ...";

答案 2 :(得分:0)

你可以试试这个:

String getQuery(Class class) {
   StringBuilder hql = new StringBuilder("from ");
   hql.append(class.getCanonicalName());
   ...
   //Here you complete the query.
   ...
   return hql.toString();
}