`

关于hibernate中update使用别名的问题

阅读更多
今天写了一个程序:
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,负责则出错
分享到:
评论

相关推荐

    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映射 ...

    hibernate3.2中文文档(chm格式)

    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 参考文档

    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 ...

    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 中文 html 帮助文档

    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语句查询学习笔记

    ### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...

    HibernateAPI中文版.chm

    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 Annotations 中文文档》是针对Hibernate框架注解配置的详细指南,旨在帮助开发者更深入地理解和使用Hibernate的注解功能。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发人员将数据库...

    hibernateJar包及配置文件

    - 注解映射:在实体类中使用Hibernate注解(如@Entity、@Table、@Id、@GeneratedValue等)替代XML映射文件,实现相同的功能。 4. Hibernate工作流程: - 初始化SessionFactory:读取配置文件,创建SessionFactory...

    MyEclipse创建的Hibernate的例子

    MyEclipse内置了对Hibernate的支持,提供了一套完整的工具集,包括实体类生成、配置文件编辑、SQL代码自动生成等,使得开发者能够轻松地在项目中集成和使用Hibernate。 1. 创建Hibernate项目:首先,在MyEclipse中...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     17.1.5 使用别名  17.1.6 多态查询  17.1.7 对查询结果排序  17.1.8 分页查询  17.1.9 检索单个对象(uniqueResult()方法)  17.1.10 按主键逐个处理查询结果(iterate()方法)  17.1.11 可滚动的结果集  ...

    传智168期JavaEE hibernate 姜涛 day36~day37(by阿滔)

    在某些情况下,我们可能需要在HQL查询中使用别名来简化查询语句或者实现复杂的查询逻辑。使用别名可以提高查询的灵活性和易读性。例如,在HQL查询中给结果集的别名,并在遍历结果时使用这个别名: ```java @Test ...

    hibernate 教程

    级联更新(Using cascading update()) 16.5. 结论 17. 示例:Weblog 应用程序 17.1. 持久化类 17.2. Hibernate 映射 17.3. Hibernate 代码 18. 示例:不同的映射 18.1. 雇员/雇主(Employer...

    hibernate3.04中文文档.chm

    17.3.1. 使用return-property来明确地指定字段/别名 17.3.2. 使用存储过程来查询 17.3.2.1. 使用存储过程的规则和限制 17.4. 定制SQL用来create,update和delete 17.5. 定制装载SQL 18. 过滤数据 18.1. ...

    Hibernate教程

    17.3.1. 使用return-property来明确地指定字段/别名 17.3.2. 使用存储过程来查询 17.3.2.1. 使用存储过程的规则和限制 17.4. 定制SQL用来create,update和delete 17.5. 定制装载SQL 18. 过滤数据 18.1. ...

    hibernate 体系结构与配置 参考文档(html)

    使用return-property来明确地指定字段/别名 16.3.2. 使用存储过程来查询 16.3.2.1. 使用存储过程的规则和限制 16.4. 定制SQL用来create,update和delete 16.5. 定制装载SQL 17. 过滤数据 17.1. Hibernate 过滤...

    Hibernate3+中文参考文档

    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 ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    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学习学习

    Hibernate是Java领域中一款强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转换为面向对象的方式,极大地简化了Java应用中的数据存取工作。在这个“hibernate学习学习”的主题中,我们将深入探讨Hibernate...

    Hibernate的Template方法以及SQL简介

    在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作过程。其中,`HibernateTemplate`作为该框架提供的一个实用工具类,封装了一系列常用的数据库操作方法,使得开发者能够...

Global site tag (gtag.js) - Google Analytics