使用hibernate调用框架自带的方法出现 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.core.cosmetics.model.GCCosmeReport e where e.report_id in(83399) and e.report_s' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
解决:
String hql = "SELECT e FROM " + entityClass.getName() + " e where e.stuId in (" + SqlReplaceUtil.sqlReplace(reportId) + ") and e.stuStatue> 0";
这里的stuId,和stuStatue,要和你创建的实体类中的字段是一致的,不需要和数据库中的字段一致
此外还有可能你的sql语句凭借时,没有空格分开,导致某些关键字不起作用