您只能将期望的值作为参数传递给HQL查询。您不能传递列名或表名。
Hibernate基本上在这里使用
PreparedStatement,在尚未知道要查询的表/列的地方无法准备语句。
您将必须编写一些String替换逻辑或使用Criteria API构建查询
List<Object> getUniqueColumn(String column_name,String column_text){ StringBuilder query = new StringBuilder(); query.append("select #column_name "); query.append("from Item "); query.append("where #column_name like %?1%"); query = query.toString("#column_name", column_name); session.createQuery(query).setString(1, column_text).list();}还要记住,您在这里所做的只是一个投影,您将不会获得项目列表,而是对象列表。



