商品状态枚举属性转换器报错

来源: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

同学你好:

    这种代码级别的报错,可以参考下我的代码,或者看看详细的报错异常栈。可以肯定的是,一定是某个地方的代码敲错了。

1
0

Spring Cloud / Alibaba 微服务架构实战

从架构设计到开发实践,手把手实现

1240 学习 · 679 问题

查看课程