String type = a.age;String hql ="select u.name,sum("+type+") from user u";直接查询没问题。下面这种通过预编译就会出问题了。String hql ="select u.name,sum(?) from user u";query.setString(1,u.age);错误提示:nvarchar不能进行sum。用最上面直接写在... String type = a.age;String hql ="select u.name,sum("+type+") from user u";直接查询没问题。下面这种通过预编译就会出问题了。String hql ="select u.name,sum(?) from user u";query.setString(1,u.age);错误提示:nvarchar不能进行sum。用最上面直接写在里面的方法不太好,有什么比较好的可以防止非法注入的解决方法?