今天写了一个程序:
getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session
.createQuery("update Project project set project.seq=? where project.id=?");
query.setInteger(0, seq);
query.setInteger(1, id);
return query.executeUpdate();
}
});
发现出错了,我把sql语句复制到SQLyog里面运行没有问题,
但程序错了,错误提示为:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.orm.hibernate3.HibernateQueryException: expecting "set", found 'project' near line 1, column 17 [update Project project set project.seq=? where project.id=?]; nested exception is org.hibernate.hql.ast.QuerySyntaxError: expecting "set", found 'dishSort' near line 1, column 17 [update Project project set project.seq=? where project.id=?]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:408)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:360)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
我删去别名project,就好了,看来在update语句里面是不能使用别名的。
getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session
.createQuery("update Projectsetseq=? where id=?");
query.setInteger(0, seq);
query.setInteger(1, id);
return query.executeUpdate();
}
});
不知道各位大哥有没有遇到这种情况。恳请研究过源码的大哥帮我解释一下,我感觉按照它的提示信息,它应该是发现update之后,后面必须是set,负责则出错。
分享到:
相关推荐
16.2.1. 使用return-property来明确地指定字段/别名 16.2.2. 使用存储过程来查询 16.3. 定制SQL用来create,update和delete 16.4. 定制装载SQL 17. 过滤数据 17.1. Hibernate 过滤器(filters) 18. XML映射 ...
16.2.1. 使用return-property来明确地指定字段/别名 16.2.2. 使用存储过程来查询 16.3. 定制SQL用来create,update和delete 16.4. 定制装载SQL 17. 过滤数据 17.1. Hibernate 过滤器(filters) 18. XML映射 ...
16.3.1. 使用return-property来明确地指定字段/别名 16.3.2. 使用存储过程来查询 16.3.2.1. 使用存储过程的规则和限制 16.4. 定制SQL用来create,update和delete 16.5. 定制装载SQL 17. 过滤数据 17.1. Hibernate ...
16.2.1. 使用return-property来明确地指定字段/别名 16.2.2. 使用存储过程来查询 16.3. 定制SQL用来create,update和delete 16.4. 定制装载SQL 17. 过滤数据 17.1. Hibernate 过滤器(filters) 18. XML映射 ...
16.2.1. 使用return-property来明确地指定字段/别名 16.2.2. 使用存储过程来查询 16.2.2.1. 使用存储过程的规则和限制 16.3. 定制SQL用来create,update和delete 16.4. 定制装载SQL 17. 过滤数据 17.1. Hibernate ...
### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...
16.2.1. 使用return-property来明确地指定字段/别名 16.2.2. 使用存储过程来查询 16.3. 定制SQL用来create,update和delete 16.4. 定制装载SQL 17. 过滤数据 17.1. Hibernate 过滤器(filters) 18. XML映射 ...
《Hibernate Annotations 中文文档》是针对Hibernate框架注解配置的详细指南,旨在帮助开发者更深入地理解和使用Hibernate的注解功能。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发人员将数据库...
- 注解映射:在实体类中使用Hibernate注解(如@Entity、@Table、@Id、@GeneratedValue等)替代XML映射文件,实现相同的功能。 4. Hibernate工作流程: - 初始化SessionFactory:读取配置文件,创建SessionFactory...
MyEclipse内置了对Hibernate的支持,提供了一套完整的工具集,包括实体类生成、配置文件编辑、SQL代码自动生成等,使得开发者能够轻松地在项目中集成和使用Hibernate。 1. 创建Hibernate项目:首先,在MyEclipse中...
17.1.5 使用别名 17.1.6 多态查询 17.1.7 对查询结果排序 17.1.8 分页查询 17.1.9 检索单个对象(uniqueResult()方法) 17.1.10 按主键逐个处理查询结果(iterate()方法) 17.1.11 可滚动的结果集 ...
在某些情况下,我们可能需要在HQL查询中使用别名来简化查询语句或者实现复杂的查询逻辑。使用别名可以提高查询的灵活性和易读性。例如,在HQL查询中给结果集的别名,并在遍历结果时使用这个别名: ```java @Test ...
级联更新(Using cascading update()) 16.5. 结论 17. 示例:Weblog 应用程序 17.1. 持久化类 17.2. Hibernate 映射 17.3. Hibernate 代码 18. 示例:不同的映射 18.1. 雇员/雇主(Employer...
17.3.1. 使用return-property来明确地指定字段/别名 17.3.2. 使用存储过程来查询 17.3.2.1. 使用存储过程的规则和限制 17.4. 定制SQL用来create,update和delete 17.5. 定制装载SQL 18. 过滤数据 18.1. ...
17.3.1. 使用return-property来明确地指定字段/别名 17.3.2. 使用存储过程来查询 17.3.2.1. 使用存储过程的规则和限制 17.4. 定制SQL用来create,update和delete 17.5. 定制装载SQL 18. 过滤数据 18.1. ...
使用return-property来明确地指定字段/别名 16.3.2. 使用存储过程来查询 16.3.2.1. 使用存储过程的规则和限制 16.4. 定制SQL用来create,update和delete 16.5. 定制装载SQL 17. 过滤数据 17.1. Hibernate 过滤...
16.3.1. 使用return-property来明确地指定字段/别名 16.3.2. 使用存储过程来查询 16.3.2.1. 使用存储过程的规则和限制 16.4. 定制SQL用来create,update和delete 16.5. 定制装载SQL 17. 过滤数据 17.1. Hibernate ...
16.2.1. 使用return-property来明确地指定字段/别名 16.2.2. 使用存储过程来查询 16.3. 定制SQL用来create,update和delete 16.4. 定制装载SQL 17. 过滤数据 17.1. Hibernate 过滤器(filters) 18. XML映射 ...
Hibernate是Java领域中一款强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转换为面向对象的方式,极大地简化了Java应用中的数据存取工作。在这个“hibernate学习学习”的主题中,我们将深入探讨Hibernate...
在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作过程。其中,`HibernateTemplate`作为该框架提供的一个实用工具类,封装了一系列常用的数据库操作方法,使得开发者能够...