当前位置:首页 > 开发 > 编程语言 > Hibernate > 正文

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

发表于: 2009-04-10   作者:asialee   来源:转载   浏览次数:
摘要: 今天写了一个程序: getHibernateTemplate().execute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query
今天写了一个程序:
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中update使用别名的问题

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
前段时间在一个项目中涉及到cookie的存取,于是打算封装一个 cookie 的CRUD 。按理来说,这本身是一
为什么需要延迟加载? 因为会提高效率嘛,存在即合理,哈哈.一般设置延迟加载就是在对象关系映射上(在
开发中使用MediaPlayer时经常会遇到如下这样的错误提示(红色字): 但是API文档中并未找到详细说明或
开发中使用MediaPlayer时经常会遇到如下这样的错误提示(红色字): 但是API文档中并未找到详细说明或
完成的项目文件:直接下载 。下面先简要说明一下创建过程: 1、先在MyEclipse中创建一个Web项目,项
因为不会使用git的命令行,所以只能用图形化的egit。但是在安装完egit后,commit完在push的时候,会
完成的项目文件:直接下载 。下面先简要说明一下创建过程: 1、先在MyEclipse中创建一个Web项目,项
dbutils 别名问题,dbutils MapHandler、MapListHandler 别名解决办法. 最近在赶一个项目,刚好用了a
from sys import argv script, input_file = argv def print_all(a): print a.read() def rewind(a)
问题背景: 假设MySQL数据库有一张会员表vip_member(InnoDB表),结构如下: 当一个会员想续买会员
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号