org.hibernate.exception.SQLGrammarException:无法准备语句 - Spring ROO

时间:2014-08-12 07:27:04

标签: java spring hibernate hsqldb spring-roo

我正在使用Spring Roo工具构建和Web应用程序。在通过roo shell控制台创建我的类时,我已经多次使用选项-permitReservedWords来创建一些类(例如,角色,组和用户)。

生成CRUD视图后,我得到了这个例外:

  

“org.hibernate.exception.SQLGrammarException:无法准备   语句“

然后我意识到只有具有保留名称的实体才会出现问题,所以如何强制这些实体名称,如果不可能我怎么编辑名称,因为eclipse中的重构选项无法解决问题,特别是在项目中有很多AspectJ文件...

1 个答案:

答案 0 :(得分:2)

请注意,JPA默认表名是类的名称(减去包),首字母大写,这就是您需要-permitReservedWords的原因。默认情况下,您的实体用户角色等将存储在用户角色等保留的表中几乎所有数据库中的单词。

要更改默认行为,请使用注释" @Table(name =" app_user")" (javax.persistence.Table)指定/定制存储给定实体数据的数据库表名。例如,用户实体可以存储在 uzer 表中。