【问题标题】:Converter affects routine auto generated code转换器影响常规自动生成的代码
【发布时间】:2014-12-30 07:29:31
【问题描述】:

我正在使用带有 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 上,想知道是否有解决方法。

【问题讨论】:

    标签: java jooq


    【解决方案1】:

    根据您的 cmets,我认为您正在寻找一种方法来防止 jOOQ 的代码生成器错误地将转换后的数据类型应用于存储的函数参数。

    我现在能想到的一种解决方法是确保没有任何过程/函数被意外匹配in the code generator configuration&lt;expression/&gt; 仅匹配完全限定的对象名称(例如参数)或非限定的对象名称。

    另一种解决方法是使用两种不同的代码生成配置:一种用于表,另一种用于例程。这样,配置转换器会容易得多...

    【讨论】:

    • 所以没有办法告诉 jooq 在创建例程时忽略转换器?
    • 啊哈,“忽略”可以作为一种解决方法吗?好吧,您可以从 &lt;forcedTypes/&gt; 配置中使用的正则表达式中排除这些过程...
    • 这对我有用,但简单的((?!FUNCTION).)* 不起作用 - 我想表达式匹配变量名本身,因此很难仅根据名称区分列名和函数参数.
    • 关于你的最后一段,有没有一种简单的方法可以排除表或例程,或者必须按名称?
    • 还没有,但我想我们应该考虑一下您的用例,when we implement #3482
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2019-07-26
    • 2010-10-04
    • 1970-01-01
    • 2016-03-26
    • 2010-11-21
    相关资源
    最近更新 更多