当我使用Hibernate查询语言时,如何在数据库中添加我想从DB获取的对象?
我想达到的是这样的事情:
......
if(....){
queryString = "from '" + Object1+ "'";
}
if(...){
queryString = "from '" + Object2+ "'";
}
....
Session session = this.getSessionFactory().getCurrentSession();
Query query = session.createQuery(queryString);
......
我尝试了不同的语法,但每次都会出错。
答案 0 :(得分:1)
通过Criteria API,您可以轻松构建动态查询...
Criteria criteria = session.createCriteria(Sale.class);
if (startDate != null) {
criteria.add(Expression.ge("date",startDate);
}
if (endDate != null) {
criteria.add(Expression.le("date",endDate);
}
List results = criteria.list();
答案 1 :(得分:1)
你可以用这个:
......
if(....){
queryString = "from '" + Object1.getClass().getName()+ "'";
}
if(...){
queryString = "from '" + Object2.getClass().getName()+ "'";
}
....
Session session = this.getSessionFactory().getCurrentSession();
Query query = session.createQuery(queryString);
......
答案 2 :(得分:1)
实际上你需要的是传递类名。您可以使用以下方式获取给定对象的类名。
object1.getClass().getSimpleName()
因此,在您的情况下,您可以在查询中附加此内容
示例:
if(....){
queryString = "from '" + Object1.getClass().getSimpleName()+ "'";
}