DataTypeException with Jooq newRecord 和一个枚举



我有一个名为Group的简单对象,其中包含一个GroupType枚举。

public enum GroupType {
    PRIMARY,
    SECONDARY
}

我构建一个新Group并保存它

Group group = new Group();
group.setName(PRIMARY.name());
group.setType(PRIMARY);
Group g = save();

save开头为

R record = (R) dsl.newRecord(Groups.GROUPS, group);

这行代码正在抛出

  Caused by: org.jooq.exception.DataTypeException: Cannot convert from PRIMARY (class com.domain.entities.support.GroupType) to class com.domain.jooq.generated.enums.GroupType
    at org.jooq.tools.Convert$ConvertAll.fail(Convert.java:1113)
    at org.jooq.tools.Convert$ConvertAll.from(Convert.java:1002)
    at org.jooq.tools.Convert.convert0(Convert.java:316)
    at org.jooq.tools.Convert.convert(Convert.java:308)
    at org.jooq.tools.Convert.convert(Convert.java:380)
    at org.jooq.impl.DefaultDataType.convert(DefaultDataType.java:698)
    at org.jooq.impl.Tools.setValue(Tools.java:1975)
    at org.jooq.impl.AbstractRecord.from(AbstractRecord.java:829)

枚举如何与newRecord一起工作?

错误消息说:

Cannot convert from PRIMARY (class com.domain.entities.support.GroupType)
                          to class com.domain.jooq.generated.enums.GroupType

jOOQ 只理解 jOOQ 生成的枚举类型 ( com.domain.jooq.generated.enums.GroupType ),而不是您自己的枚举类型 ( com.domain.entities.support.GroupType )。GroupType

如果确实要使用自己的枚举类型,则需要在TYPE列上注册一个Converter,以便在两种类型之间进行转换。

最新更新