2016-03-15 66 views
1

生成關的Oracle數據庫的。在oracle軟件包中有兩個函數由於命名原因而無法編譯。 EG有一個PKG內的PL/SQL函數get_minutes它被作爲Getminutes.java產生,但是類名是GetMinutes這使編譯器錯誤:JOOQ 3.1生成的文件名是不同的類名導致編譯錯誤

class GetMinutes is public - should be declared in filename GetMinutes.java. 

從字面上看其他功能100的得到正確生成。
任何想法爲什麼這一代人在這裏跌倒?

+0

你使用的是什麼jOOQ版本?這聽起來像一個3 - 4年前固定的錯誤... –

+0

你好,它的標題Jooq 3.1。事實證明,在所有情況下,這是因爲在pkg中有類似javastyle命名的函數。例如,有兩種方法get_minutes和getMinutes。 JooQ發電機不喜歡這個,正確如此。 –

+0

:)沒有看到標題,不知何故。你有沒有嘗試升級?雖然,我認爲這個特殊問題不會通過升級來解決。將盡快提供答案... –

回答

1

默認情況下,jOOQ將通用UPPER_CASE_WITH_UNDERSCORES命名模式從數據庫轉換爲Java中更常見的PascalCase類命名模式。當名稱非常相似的過程,表等命名衝突時,這顯然會導致問題。

爲此jOOQ的代碼生成器附帶發生器策略,其允許每當產生一個類,恆定,參考,構件,方法等名稱你掛接到代碼生成器。有兩種方法來配置這些策略:

將這些策略配置爲與數據庫中完全相同的配置相對比較容易。 jOOQ 3.8對此行爲也有一個開箱即用的策略(見#3570)。

相關問題