java - Spring Roo + hibernate : uppercase database name in the query

标签 java hibernate spring jpa-2.0 spring-roo

我已经使用 Spring Roo 对示例 MySQL 数据库进行了逆向工程,并且我尝试以这种方式使用 Customer 实体插入记录:

Customer customer = new Customer();
customer.setFirstName("Raffaello");
customer.setLastName("Baresi");
customer.persist();

但是,虽然与数据库的初始连接插入查询失败,所以我启用了完整查询日志,并且我注意到架构名称大写为 ROO_CRM 而不是 roo_crm。

insert into ROO_CRM.CUSTOMER (COMPANY_ID, FIRST_NAME, LAST_NAME) 
values (null, 'Raffaello', 'Baresi')

我的database.property文件包含小写名称:

database.url=jdbc\:mysql\://localhost/roo_crm?zeroDateTimeBehavior\=convertToNull&characterEncoding\=UTF-8

虽然生成的 Customer 类具有 @RooEntity 注释的大写模式属性:

@RooJavaBean
@RooToString
@RooEntity(versionField = "", table = "CUSTOMER", schema = "ROO_CRM")
@RooDbManaged(automaticallyDelete = true)
public class Customer {
}

我想小写模式名称,清理并重建以增加预防措施,但模式在查询中仍然是大写。我还注意到 Spring 管理的 Customer_Roo_Entity 有以下行:

declare @type: Customer: @Table(name = "CUSTOMER", schema = "ROO_CRM");

仍然采用大写模式,但我不允许编辑该文件。解决问题的正确步骤是什么?

最佳答案

这实际上是非常简单的解决方案:更改 @RooEntity 注释的架构属性是正确的。我忘记的是,我应该让 roo shell 打开,这样就会自动修改生成的 Customer_Roo_Entity.aj 文件。

我启动了 roo shell,生成的 Customer_Roo_Entity.aj 已被修改,一切正常。

关于java - Spring Roo + hibernate : uppercase database name in the query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7331040/

相关文章:

Hibernate 配置类的 java.lang.NoSuchMethodError 仅出现在 Tomcat 上

java - 在 Hibernate 中使用注释映射接口(interface)集合

java - Spring+Hibernate验证: throws Hibernate Exceptions and not Spring exceptions

android - 在 android 中处理 RestClient 调用的连接和读取超时

java - Spring @DependsOn 注释是否有 "revert"?

Java:在 for 循环中使用 .charAt() 时出现 StringIndexOutOfBoundsException

java - 如何使用java清除浏览器缓存

java - Spring : Is this member variable thread-safe?

java - 为什么我们不能在带有 ehcache 的 spring 中将 @Cacheable 与静态方法一起使用?

java - 使用 CloudBeans 托管服务器