2014-02-09 113 views
1

我有複數定義的表名。但我的課程單數命名。 例如 表名:員工 Java的類名:公共類Employee {JPA 2.1自定義命名策略?

另外我們的代碼約定定義規則,所有成員域/變量必須有前綴m_salery 例如 的ColumnName: Salery Java的字段名: m_salery

現在我的問題: 什麼是JPA 2.1標準的方式來定義一個默認的表名策略和columnNmae策略命名?如果我需要手動定義所有的java-fields和Entity-Annotations,我會發瘋的。

+6

這就是爲什麼採用非標準約定,比如用'm_'前綴字段名稱是一個非常非常糟糕的主意的原因之一。 –

+0

許多IDE可以使用正確的註釋生成實體類和列,如果您可以指定數據庫憑證 – zencv

回答

2

JPA不提供任何全局適用的模板表/列名稱策略。不幸的是,由於您的代碼約定,您將不得不使用JPA註釋(如@Table(name=...)@Column(name=...))手動指定表名稱和列名稱。

在這裏避免這些代碼慣例似乎是適當的。

通常會採用代碼約定來提高源代碼的可讀性並使軟件維護更容易。在這種特殊情況下,公約並沒有改善這兩種情況。

+0

非常真實。閱讀http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html – mwhs

+0

我已經將約定更改爲實體的默認值,感謝您的洞察力 – hkais