0

我正在尝试将列名动态传递给休眠状态的查询,但我无法这样做。你能阐明如何做到这一点吗?我试过Restrictions如下:

getCurrentSession()
.createCriteria(Result.class)
.add(Restrictions.eq(option.column_name, "first_test")).list();

例外:

org.springframework.web.util.NestedServletException: Request processing failed; 
nested exception is org.hibernate.QueryException: could not resolve property:
"test_name,le" of: com..model.Result
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
4

1 回答 1

0
  • 您的实体Result似乎没有财产 test_name,le

请确保您传递正确的字段名称,例如:

@Entity
class Employee{
   ..
   private String firstName;
   private String lastName;
   ..
} 

如果用户选择firstName了您只需将字段名称传递为String

String fieldName = "firstName";
getCurrentSession().createCriteria(Employee.class)
.add(Restrictions.eq(fieldName, "John")).list();
于 2013-09-05T20:50:20.513 回答