org.springframework.dao.InvalidDataAccessResourceUsageException: could not load an entity: [wulin.oa.model.Role#1]; SQL [select role0_.id as id3_0_, role0_.name as name3_0_, role0_.descrption as descrption3_0_, right as right3_0_ from t_role role0_ where role0_.id=?]; nested exception is org.hibernate.exception.SQLGrammarException: could not load an entity: [wulin.oa.model.Role#1]com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as right3_0_ from t_role role0_ where role0_.id=1' at line 1
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
com.mysql.jdbc.Util.getInstance(Util.java:381)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554)
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761)
情况是这样,我在一台机子上使用的MySQL的非安装版,程序运行正常,没有错误。但是在另一台机子,我装的是MySQL的安装版,接着就报了这样的错误,让我很头疼啊。这是什么问题啊,在网上搜到很多,都没解决,望高手解决下

解决方案 »

  1.   

    HQL转译成SQL出现问题,请确定HQL书写是否正确
      

  2.   

    MYSQL版本是否存在不同?因为本人没用过MYSQL,所以根据“情况是这样,我在一台机子上使用的MySQL的非安装版,程序运行正常,没有错误。但是在另一台机子,我装的是MySQL的安装版,接着就报了这样的错误”这一句,只能认为是方言问题
      

  3.   

    我认为 mysql版本 和hibernate 版本问题原因:hibernate设置方言的时候 肯定不能支持所有版本的mysql
    肯定要和某个版本极其以后的版本匹配..是不是安装版本的mysql太老?
      

  4.   


    mysql-essential-5.1.53-win32.zip 这个算老吗?
      

  5.   


    如果数据库用一版本是不是局限性太大了,还有如果是方言的问题,那么
    MySQL / org.hibernate.dialect.MySQLDialect 
    MySQL with InnoDB / org.hibernate.dialect.MySQLInnoDBDialect 
    MySQL with MyISAM / org.hibernate.dialect.MySQLMyISAMDialect 
    这3个是什么情况下使用呢?
      

  6.   


    书写是正确的,因为在非安装版的MYSQL环境下可以正常运行