Java SqlExceptionHelper.logExceptions int:WRAP类型的错误值

Java SqlExceptionHelper.logExceptions int:WRAP类型的错误值,java,spring,Java,Spring,大家好,我是在看《春季行动》第五版的书,当我想从配料表中获取参数时,我遇到了问题。在以下方法中,我尝试使用IngredEnterpository.findAll()填充列表: 这是我的成分实体的外观: @Data @RequiredArgsConstructor @NoArgsConstructor(access=AccessLevel.PRIVATE, force=true) @Entity public class Ingredient { @Id @Column(name

大家好,我是在看《春季行动》第五版的书,当我想从配料表中获取参数时,我遇到了问题。在以下方法中,我尝试使用IngredEnterpository.findAll()填充列表:

这是我的成分实体的外观:

@Data
@RequiredArgsConstructor
@NoArgsConstructor(access=AccessLevel.PRIVATE, force=true)
@Entity
public class Ingredient {
    @Id
    @Column(name = "id", columnDefinition = "varchar(4)")
    private final String id;
    @Column(columnDefinition = "varchar(25)")
    private final String name;
    @Column(columnDefinition = "varchar")
    private final Type type;
    public static enum Type {
        WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
    }
}

我怎样才能修好它?提前感谢

带有JPA的枚举可以使用带有
@Enumerated
注释的不同获取方法

似乎默认情况下,这些值是由序数值获得的,这就是为什么您会得到这个错误,因为您将这些值存储为字符串

请尝试以下操作,告诉JPA您的枚举值被持久化为
String

@Column(columnDefinition = "varchar")
@Enumerated(EnumType.STRING)
private final Type type;
@Data
@RequiredArgsConstructor
@NoArgsConstructor(access=AccessLevel.PRIVATE, force=true)
@Entity
public class Ingredient {
    @Id
    @Column(name = "id", columnDefinition = "varchar(4)")
    private final String id;
    @Column(columnDefinition = "varchar(25)")
    private final String name;
    @Column(columnDefinition = "varchar")
    private final Type type;
    public static enum Type {
        WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
    }
}
@Column(columnDefinition = "varchar")
@Enumerated(EnumType.STRING)
private final Type type;