2011-06-27 100 views
0

我有一個關於spring roo和數據庫的問題。 我有一個名爲personName的字段,在oracle中將column創建爲person_NameSpring Roo Oracle和Underscore

我有一種避免下劃線的方法。我想命名我的專欄personname會解決這個問題,但我可以問spring不要添加下劃線嗎?

+0

記住,Oracle表/列名不區分大小寫,所以駝峯贏得」不會反映在數據庫中。 RUNNINGWORDSTOGETHERMAKESITHARDTOREAD –

回答

2

Roo默認引用JPA實現來確定列名稱。你可以用--column屬性覆蓋默認值:

entity --class Foo 
field string --fieldName FooBar --column fooBar 
+0

謝謝。我會在下一次做。但是如何用新的列名更新我的項目。我現在非常喜歡它。我嘗試更換所有出現的柱面名稱,但遇到了很多麻煩... – gpasse

+0

您有一個Foo.java,其中您的personName字段已定義。你應該有一個@Column註解,改變'name'的值。 – abalogh

+0

@Column(name =「columName」) – gpasse

5

如果你需要一個通用的解決方案(而不是「固定」的一些單點(abaloghs答案)),你可以爲你的JPA提供指定命名策略。

舉個例子看看:JPA (Hibernate) and custom table prefixes

+0

+1爲一般解決方案 – abalogh

+0

+1這就是真正的答案。 – bhagyas

0

卓悅, 順便說一下,我不認爲這是可能的逆向工程用下劃線數據庫表名:

  1. 相應的域類將被創建和編譯,因爲Java接受類名稱中的下劃線
  2. 測試將在不引發任何問題的情況下執行
  3. 所有內容都將支持GUI
  4. 你會成功地在Tomcat上部署和您的應用程序頁面將在瀏覽器
  5. 顯示您可以填寫表格,創建你的對象
  6. 的新實例,但是,如果你點擊保存 - >內部錯誤

如果你看看tomcat的日誌,你將FID著名的例外:javax.servlet.jsp.JspTagException:沒有在代碼中發現的消息...

的原因是你的類名稱已在message_xx.properties文件中截斷。 下劃線之前的所有內容都會被刪除,因此,爲了顯示您的記錄已成功保存,找不到任何消息。

這將是很好創建的JPA實體,而不是在運行時ROO殼引發錯誤...