Java SqlExceptionHelper.logExceptions int:WRAP类型的错误值
大家好,我是在看《春季行动》第五版的书,当我想从配料表中获取参数时,我遇到了问题。在以下方法中,我尝试使用IngredEnterpository.findAll()填充列表: 这是我的成分实体的外观: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
@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;