一棵秋天的树 发表于 2013-10-8 15:54:34

3.3.2部署运行后,Hql错误。

本帖最后由 一棵秋天的树 于 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还是有问题的。

jueyue 发表于 2013-10-8 20:50:44

ht_t_s_attachment这个表是hibernate自己生成的吧

jueyue 发表于 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功能有问题。我换个版本再试。

jueyue 发表于 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了。
页: [1]
查看完整版本: 3.3.2部署运行后,Hql错误。