方法如下,获取日志设备分组
public List<LogEntity> getGroup(String col) {
MySession mySession = HibernateUtil.openSession();
try {
Query query = mySession.createQuery("from " + LogEntity.class.getName() + " group by :col");
query.setParameter("col", col);
String queryString = query.getQueryString();
System.out.println(queryString);
List<LogEntity> list = query.list();
return list;
} catch (Exception e) {
e.printStackTrace();
} finally {
mySession.close();
}
return null;
}
调用代码如下
TestLogDao dao = new TestLogDao();
List<LogEntity> devices = dao.getGroup("devices");
for (LogEntity en : devices) {
System.out.println(en.getDevices());
}
下面是打印结果
from com.mh.myservice.entity.LogEntity group by :col
SM-G9350
“:col”没有被替换为指定的列名
而把上面部分代码改为:
//不做参数绑定,直接写入语句中
Query query = mySession.createQuery("from " + LogEntity.class.getName() + " group by devices");
则结果正常
from com.mh.myservice.entity.LogEntity group by devices
H60-L01
MI 8
MI NOTE LTE
MIX 2
OD103
PBAM00
PRA-AL00X
Redmi 6
SM-G9350
SM-G9500
SM-G9550
请问有没有遇到过同样问题的??
java version "1.7"
hibernate version "5.1.1"