springmvc 枚举类型与数据库

首先:一个枚举类:

package com.bigdata.lab.ymlib.model;

import java.util.Objects;

/**     
 *
 * @author: Jason.Huang   
 * @date:   2017年10月13日 上午11:30:02   
 * @version V1.0     
 */
public enum LanguageType {
	zh_cn("zh-cn"),
	zh_tw("zh-tw"),
	en("en"),
	all("all");
	
	private String lang;
    LanguageType(String lang){
        this.lang = lang;
    }

    public String getValue(){
        return this.lang;
    }

    public static LanguageType fromString(String value){
        Objects.requireNonNull(value, "value can not be null");
        LanguageType languageType = null;
        if("zh-cn".equals(value)){
        	languageType = zh_cn;
        }
        else if("zh-tw".equals(value)){
        	languageType = zh_tw;
        }
        return languageType;
    }
}




实体类 如下:
package com.bigdata.lab.ymlib.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;

/**
 * 促销商品实体
 * 
 * @author: Jason.Huang
 * @date: 2017年10月11日 上午10:25:16
 * @version V1.0
 */
@Entity
@Table(name = "ym_sale_activity_item")
public class SaleActivityItem extends BaseEntity {

	

	private LanguageType languageType;

	private String activityId;

	
	private String literId;

	
	private String goodsTitle;

	
	private String goodsTips;

	
	private Double originalPrice;

	
	private Double actualPrice;

	}


要让这个枚举类型 LanguageType 能与数据库表中字段映射上,首先要写一个枚举转换类
@Converter
public class LanguageTypeConverter implements AttributeConverter<LanguageType, String> {

    @Override
    public String convertToDatabaseColumn(LanguageType attribute) {
        return attribute.getValue();
    }

    @Override
    public LanguageType convertToEntityAttribute(String dbData) {
        return LanguageType.fromString(dbData);
    }
}

然后在使用的实体当中加注解:

@Enumerated(EnumType.STRING)
@Column(name = "languageType")

private LanguageType languageType;
ok现在可以尝试做增删改查操作了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值