抱歉,这个问题看起来有点简单,但是有没有办法通过将类指定为查询的变量来使用 Hibernate 从数据库中加载对象?
IE:
我有
克拉兹A、克拉兹B、克拉兹C
所有三个类都映射到数据库中的表 ClazzA、ClazzB 和 ClazzC
我想要一个像这样的变量:
类 clazz=obj.getClass();
然后能够通过将类指定为查询构造的一部分来填充查询:
列出 objs=session.createQuery(...) ... .list();
有没有办法做到这一点?
使用 HQL 查询没有优雅的方法,但您可以使用 Criteria API:
List objs = session.createCriteria(clazz).list();
也可以看看:
String hql = "select o from " + clazz.getName() + " o where ...";
你可以试试这个:
String getQuery(Class class) {
StringBuilder hql = new StringBuilder("from ");
hql.append(class.getCanonicalName());
...
//Here you complete the query.
...
return hql.toString();
}