服务器 > 服务器 > 微服务

JPA+Enum枚举实现步骤流程

17人参与 2025-10-16 微服务

1.创建实体类(学生实体,sex枚举类)

@data
@table
@entity
public class student {
	@id
	@generatedvalue(generator = "uuid")
	@genericgenerator(name = "uuid",strategy = "org.hibernate.id.uuidgenerator")
	private string id;
	private string name; // 姓名
	private sex sex; // 性别
}

使用@jsonvalue来标记枚举想要返回的序列化值

注意:建议枚举的编码不要使用数字

public enum sex { // 性别
    girl("fm","女"),boy("m","男");

    private string code;
    private string sname;
    
    sex(string code,string sname) {
        this.code = code;
        this.sname = sname;
    }
    
    public string getcode() {
        return code;
    }
   /**
     * 将数据库查询到编码自动转为文字返回给前端
     */
    @jsonvalue
    public string getsname() {
        return sname;
    }
}

2.创建converter(属性转换器)

@converter(autoapply = true)
public class sexconverter implements attributeconverter<sex, string> {
    /**
     * 此方法告诉jpa,数据库里存的值,即插入和更新操作时执行;
     */
    @override
    public string converttodatabasecolumn(sex sex) {
        if(sex == null){
            return null;
        }
        return sex.getcode(); // 此处存储的是编码
    }

    /**
     * 此方法告诉java从数据库里取出的值对应的是哪个enum值,即查询操作时执行。
     */
    @override
    public sex converttoentityattribute(string code) {
         if(code == null){
            return null;
        }
        for (sex sex : sex.values()) {
            if(sex.getcode().equals(code)){
                return sex; // 获取到当前sex信息
            }
        }
        throw new illegalargumentexception(); // 或者给个默认的enum eg: return category.unknown
    }
}

3.创建controller层

@restcontroller
@requestmapping("/student")
public class studentcontroller {
	@autowired private studentrepo repo;
	
	@postmapping(path = "/save")
	public student save(@requestbody student student) {
		repo.save(student);
		return student;
	}
	
	@getmapping(path = "/list")
	public list<student> list() {
		return repo.findall();
	}
}

当需要在后端使用时,用此方法–>sex.girl/sex.boy

4.数据库表,测试

新增测试

查询测试

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

Jpa中自定义枚举映射方式

10-16

Nacos Server部署配置全过程

10-16

使用Nacos打造微服务配置中心详解

10-16

解决若依微服务框架启动报错的问题

08-08

微服务:一篇博客带你学会Feign(远程调用、自定义配置、性能优化、常用方式)

08-06

入门级微服务项目搭建:六、集成Gateway

08-06

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论