关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 12841|回复: 6

3.3.2部署运行后,Hql错误。

[复制链接]
发表于 2013-10-8 15:54:34 | 显示全部楼层 |阅读模式
本帖最后由 一棵秋天的树 于 2013-10-8 17:38 编辑

eclipse3.7, tomcat7,其中jasper.jar用tomcat6中的替代。
可以运行。
但在init.jsp中运行到
RepairServiceImpl.java中的
deleteAndRepair()方法
commonDao.executeHql("delete TSAttachment");这句时出错,
错误信息:
org.hibernate.exception.SQLGrammarException: Table 'jeecg-test.ht_t_s_attachment' doesn't exist at
......
org.hibernate.internal.QueryImpl.executeUpdate(QueryImpl.java:116) at org.jeecgframework.core.common.dao.impl.GenericBaseCommonDao.executeHql(GenericBaseCommonDao.java:876) at jeecg.system.service.impl.RepairServiceImpl.deleteAndRepair(RepairServiceImpl.java:56) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

找了一个3.2.0的sql,修改了几个id varchar(255)为varchar(36)后,
再把dbconfig.properties里的改为
hibernate.hbm2ddl.auto=update
可以登录进去。
从代码看,目前3.3.2还是有问题的。
发表于 2013-10-8 20:50:44 | 显示全部楼层
ht_t_s_attachment这个表是hibernate自己生成的吧
发表于 2013-10-8 21:53:22 | 显示全部楼层
建立表格的时候一定要设置排序规则为utf8_unicode_ci不然建立表格的时候排序规则会是另一个,而我们连接表格的时候,使用了useUnicode=true的设置造成两边不兼容,我就是被这个我问题坑的
 楼主| 发表于 2013-10-9 09:38:26 | 显示全部楼层
utf8-general-ci和utf8_unicode_ci没啥区别吧?排序这块目前还没关注。
ht_t_s_attachment是hibernate自动生成的,照道理按照TSAttachment的驼峰转下划线,应该是t_s_attachment。类似的sql生成器我以前用过的。
 楼主| 发表于 2013-10-9 10:44:04 | 显示全部楼层
看了下,应该是mysql版本问题,create temporary table功能有问题。我换个版本再试。
发表于 2013-10-9 10:50:19 | 显示全部楼层
utf8_unicode_ci hibernate创建的是这个排序规则,如果数据库是
utf8-general-ci这个排序规则的话,hibernate创建的临时表就和数据库中的临时表有冲突,而造成不能比较的问题
 楼主| 发表于 2013-10-9 14:55:10 | 显示全部楼层
换了一个mysql,发现偶尔tomcat7不能正常启动,居然在eclipse的临时目录也找不到错误代码,tomcat启动增加jvm参数也不成功,反复折腾几次,还原之后莫名其妙的又ok了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表