2011-09-07 40 views
1

大寫的數據庫名稱,我逆向工程與Spring Roo的樣本MySQL數據庫和我試圖插入一條記錄使用Customer實體以這樣的方式Spring Roo的+ Hibernate的:在查詢

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 

而產生的客戶類有@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"); 

仍然是用大寫的模式,但我不允許編輯該文件。解決這個問題的正確程序是什麼?

+0

當我們引用數據庫模式時,我不認爲這種情況很重要。順便說一下你使用的數據庫是什麼?這可能是一些其他問題。 – bhagyas

+0

嗨@bhagyas,我在Linux上使用MySQL,所以對於這個組合來說很重要。我剛找到解決方案...我忘了運行roo shell ...我知道這聽起來有點愚蠢的錯誤,但我正在學習。 – stivlo

+0

沒關係,歡呼聲和Roo一切順利! :) – bhagyas

回答

1

這實際上是非常簡單的解決方案:更改@RooEntity註釋的模式屬性是正確的。我忘了這一點,我應該打開roo shell並自動修改生成的Customer_Roo_Entity.aj文件。

我啓動了roo shell,生成的Customer_Roo_Entity.aj被修改,並且一切正常。