org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query;
sql 语句错误举例:
错误方法:
- @SuppressWarnings("unchecked")
- public List<Member> findMemberByName(String name) {
- List<Member> list = null;
- String queryStr = "from Member mem where mem.name = " + name
- list = (List<Member>) this.getHibernateTemplate().find(queryStr);
- return list;
- }
那么Hibernate在执行这个语句的时候产生的sql语句是:
- select
- .....
- from
- shopping.member member0_
- where
- member0_.loginName=qingyun
错误就在最后一行上 qingyun 没有引号。
修改如下:注意 在生产queryStr 的时候补充了引号
- @SuppressWarnings("unchecked")
- public List<Member> findMemberByName(String name) {
- List<Member> list = null;
- String queryStr = "from Member mem where mem.name = '" + name + "'";
- list = (List<Member>) this.getHibernateTemplate().find(queryStr);
- return list;
- }
产生的正确sql语句如下:
- select
- .....
- from
- shopping.member member0_
- where
- member0_.loginName='qingyun'
ok!