我有一個MySQL表中有一些列(MD5,FLAGCONFIRMED,FLAGCHANGEPASSWORD)定義像「char(1)」,其中唯一可能的值是0和1.我想要jOOQ將它們轉換爲布爾值在代碼生成中。jOOQ轉換字符串布爾
我創建了一個轉換器:
public class BooleanConverter implements org.jooq.Converter<String, Boolean>{
private static final long serialVersionUID = -4785961538634851898L;
@Override
public Boolean from(String arg0) {
if (arg0 == null) {
return null;
}
return arg0.equals("1");
}
@Override
public Class<String> fromType() {
return String.class;
}
@Override
public String to(Boolean arg0) {
if (arg0 == null) {
return null;
}
return arg0.booleanValue() ? "1" : "0";
}
@Override
public Class<Boolean> toType() {
return Boolean.class;
}
}
然後我在POM配置的轉換器(我使用Maven來生成源)。
<customTypes>
<customType>
<name>java.lang.Boolean</name>
<converter>org.test.converter.BooleanConverter</converter>
</customType>
</customTypes>
<forcedTypes>
<forcedType>
<name>java.lang.Boolean</name>
<expressions>.*\.FLAGCHANGEPASSWORD,.*\.FLAGCONFIRMED,.*\.MD5.*</expressions>
</forcedType>
</forcedTypes>
代碼已成功生成但類型未轉換,它們的類型仍爲字符串。
/**
* The table column <code>mmw.enduser.MD5</code>
*/
public final org.jooq.TableField<de.kybeidos.mmw.data.tables.records.EnduserRecord, java.lang.String> MD5 = createField("MD5", org.jooq.impl.SQLDataType.CHAR, this);
如何讓它工作?
編輯:我使用jOOQ 2.6.1
你有沒有嘗試使用**'java.lang.Character' **作爲轉換器的** ** fromType? (而不是字符串) – lschin
lschin,它不起作用。 – islon