商品状态枚举属性转换器报错
来源:10-3 商品属性枚举类及转换器定义(下)
慕粉9089043
2021-09-15
报错:Error attempting to apply AttributeConverter; nested exception is javax.persistence.PersistenceException: Error attempting to apply AttributeConverter
代码:
import com.imooc.ecommerce.constant.GoodsStatus;
import javax.persistence.AttributeConverter;
/**
-
商品状态枚举属性转换器,主要用于数据与beam之间的数据转换
-
*/
public class GoodsStatusConverter implements AttributeConverter<GoodsStatus,Integer> {/**
-
转换成可以存入数据表的基本类型
- */
@Override
public Integer convertToDatabaseColumn(GoodsStatus goodsStatus) {
return goodsStatus.getStatus();
}
/**
-
还原数据表中的字段值到 Java 数据类型
- */
@Override
public GoodsStatus convertToEntityAttribute(Integer status) {
return GoodsStatus.of(status);
}
}
-
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Objects;
import java.util.stream.Stream;
/**
-
商品状态枚举类
-
*/
@Getter
@AllArgsConstructor
public enum GoodsStatus {ONLINE(101, “上线”),
OFFLINE(102, “下线”),
STOCK_OUT(103, “缺货”),
;/** 状态码 */
private final Integer status;/** 状态描述 */
private final String description;/**
-
根据 code 获取到 GoodsStatus
-
*/
public static GoodsStatus of(Integer status) {Objects.requireNonNull(status);
return Stream.of(values())
.filter(bean -> bean.status.equals(status))
.findAny()
.orElseThrow(
() -> new IllegalArgumentException(status + " not exists")
);
}
}
-
1回答
-
张勤一
2021-09-15
同学你好:
这种代码级别的报错,可以参考下我的代码,或者看看详细的报错异常栈。可以肯定的是,一定是某个地方的代码敲错了。
10
相似问题