2014-11-03 65 views
2

我正在使用JOOQ自定義類型轉換器,它適用於表格,但爲例程創建不可編譯的代碼。轉換器影響例程自動生成的代碼

比如我有一個public class DateConverter implements Converter<Date, LocalDate>但是,當正在產生接受date作爲參數,導致下面的代碼一些功能自動生成代碼:

public static final org.jooq.Parameter<java.time.LocalDate> VALUE_DATE = createParameter("value_date", org.jooq.impl.SQLDataType.DATE); 

我明白a related feature is planned for 3.5.0 that will probably solve the issue但我在3.4。 4,並想知道是否有解決方法。

回答

2

從您的意見,我認爲你正在尋找一種方法來防止JOOQ的代碼生成器錯誤地將轉換的數據類型應用於存儲的函數參數。

我現在可以想到的一種解決方法是確保沒有任何程序/功能偶然匹配in the code generator configuration<expression/>只能匹配完全限定的對象名稱(例如參數)或未限定的對象名稱。

另一個解決方法是有兩個不同的代碼生成配置:一個用於表,另一個用於例程。這樣,配置轉換器會更容易...

+0

所以沒有辦法告訴jooq在創建例程時忽略轉換器嗎? – assylias 2014-11-03 17:39:45

+0

阿哈,「忽略」將被視爲解決方法?那麼,你可以從你的''配置中使用的正則表達式中排除這些過程...... – 2014-11-03 17:53:59

+0

這對我很有用,但是隻有一個簡單的'((?!FUNCTION)。)*'不起作用 - 我假設表達式與變量名稱本身相匹配,所以僅僅根據名稱很難區分列名和函數參數。 – assylias 2014-11-03 17:58:31