java - org.hibernate.exception.SQLGrammarException : could not prepare statement -- Spring ROO

标签 java spring hibernate hsqldb spring-roo

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

生成 CRUD View 后,我收到此异常:

"org.hibernate.exception.SQLGrammarException: could not prepare statement"

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

最佳答案

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

要更改默认行为,请使用注释“@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/

相关文章:

java - Projections.count() 和 Projections.countDistinct() 都产生相同的查询

java - 如何从点集中选择具有统计显着性的点?

java - 中位数java实现的中位数

spring - Spring 启动。在一个应用程序中为@Ccontroller和@RestController处理不同的错误

mysql - 在我的 SQL 数据库上执行查询时连接被拒绝

java - 如何在 RESTful Web 服务中为 "action oriented"方法创建路径?

java - Hibernate 查询 where 子句中的 list<t>

java - 后续运行程序时如何保存和重新加载JTree?

java - 分离Web服务器和应用服务器,都需要java吗?

java - CrudRepository保存方法