很抱歉这看起来有点简单,但有没有办法通过将类指定为查询变量来从Hibernate加载数据库中的对象?
即:
我有
ClazzA,ClazzB,ClazzC
所有三个类都映射到db
中的表ClazzA,ClazzB和ClazzC我想有一个像这样的变量:
Class clazz = obj.getClass();
然后能够通过将类指定为查询构造的一部分来填充查询:
列出objs = session.createQuery(...)... .list();
有办法做到这一点吗?
答案 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();
}