我正在使用 Spring Roo Tool 构建 Web 应用程序。在通过 roo shell 控制台创建类时,我多次使用选项 -permitReservedWords
来创建一些类(例如角色、组和用户)。
生成 CRUD View 后,我收到此异常:
"org.hibernate.exception.SQLGrammarException: could not prepare statement"
然后我意识到问题只发生在具有保留名称的实体上,所以我如何强制这些实体名称,如果不可能,我如何编辑名称,因为 eclipse 中的重构选项不能解决问题,特别是项目中有很多 AspectJ 文件...
最佳答案
请注意,JPA 默认表名称是类的名称(减去包),首字母大写,这就是您需要 -permitReservedWords
的原因。默认情况下,您的实体User、Role等将存储在User、Role等保留的表中几乎所有数据库中的单词。
要更改默认行为,请使用注释“@Table(name="app_user")”(javax.persistence.Table) 来指定/自定义存储给定实体数据的数据库表名称。例如,User 实体可以存储在 uzer 表中。
关于java - org.hibernate.exception.SQLGrammarException : could not prepare statement -- Spring ROO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25258495/