这是 jOOQ 代码生成器中的一个错误,它应该@set:JvmName
为这种情况生成注释,正如Михаил Нафталь所建议的那样。错误编号为#11912,已针对 3.15.0 和 3.14.12 修复。
KotlinGenerator.generatePojo()
您可以通过覆盖该方法(需要复制整个代码并修补相关位)或使用 hack 来解决此问题:您可以覆盖该KotlinGenerator.printColumnJPAAnnotation()
方法并在那里实现您的逻辑:
// Example implemented in Java:
@Override
protected void printColumnJPAAnnotation(JavaWriter out, ColumnDefinition column) {
super.printColumnJPAAnnotation(out, column);
String member = getStrategy().getJavaMemberName(column, Mode.POJO);
if (member.startsWith("is") && ((ColumnDefinition) column)
.getContainer()
.getColumns()
.stream()
.anyMatch(c -> member.equals("is" +
StringUtils.toUC(getStrategy().getJavaMemberName(c, Mode.POJO))
))) {
out.println("@set:JvmName(\"%s\")",
getStrategy().getJavaSetterName(column, Mode.POJO));
}
}