我正在尝试从数据库生成JOOQ模型。为了记录FooRecord
和领域time_stamp
,我希望产生的设置者和getter是getTime_stamp
andsetTime_stamp
。XY问题免责声明:这是用于JDBI映射。我通常不使用JOOQ,而只是为了生成POJO。
这是我的片段library.xml
:
<strategy>
<matchers>
<fields>
<field>
<expression>^(.*)$</expression>
<fieldIdentifier>
<transform>AS_IS</transform>
</fieldIdentifier>
<fieldSetter>
<transform>UPPER_FIRST_LETTER</transform>
<expression>set$0</expression>
</fieldSetter>
<fieldGetter>
<transform>UPPER_FIRST_LETTER</transform>
<expression>get$0</expression>
</fieldGetter>
</field>
</fields>
</matchers>
</strategy>
这将生成Gettime_stamp()
和Settime_stamp(Timestamp)
。
我尝试使用其默认的AS_IS生成器,并且生成了time_stamp()
/ time_stamp(Timestamp)
,以及gettime_stamp()
/settime_stamp(Timestamp)
问题是,在子句transform
之后应用了expression
,反之亦然。
有没有一种方法可以根据需要使用xml设置来生成setter / getter,而无需在Java中实现自己的Generator类?
正如Lukas Eder所说,我基于docs中显示的示例实现了GeneratorStrategy :
public class AsInDatabaseStrategy extends DefaultGeneratorStrategy {
public String capitalize(String input) {
return input.substring(0, 1).toUpperCase() + input.substring(1);
}
@Override
public String getJavaSetterName(Definition definition, Mode mode) {
return "set" + capitalize(definition.getOutputName());
}
@Override
public String getJavaGetterName(Definition definition, Mode mode) {
return "get" + capitalize(definition.getOutputName());
}
}
我添加了实现类并重新打包了JAR并运行了它,现在,设置器和获取器是按照我想要的方式生成的。再次感谢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句