您的位置:首页 > 编程语言 > Java开发

java SpringBoot自动封装枚举类型的方法

2017-03-15 09:58 483 查看
package com.**.util;

import com.wdletu.travel.constant.Gender;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;

/**
* Created by zhangmy on 2017/3/14.
*/
@Configuration
public class StringToGenderConverter implements Converter<String,Gender> {
@Override
public Gender convert(String source) {
String value = source.trim();
if ("".equals(value)) {
return null;
}
return Gender.get(Integer.parseInt(value));
}
}


package com.**.constant;

/**
* Created by zhangmy on 2017/3/10.
*/
public enum Gender {
FEMALE(0,"男"),
MALE(1,"女");
private int status;
private String text;

Gender(int status,String text){
this.status=status;
this.text=text;
}

public static Gender get(int v) {
String str = String.valueOf(v);
return get(str);
}

public static Gender get(String str) {
for (Gender e : values()) {
if(e.toString().equals(str)) {
return e;
}
}
return null;
}

public int getStatus() {
return status;
}

public String getText() {
return text;
}
}


controller

/**
* 保存用户信息
* @param user 用户信息
* @return
*/
@RequestMapping(value="/insert",method = RequestMethod.POST)
@ResponseBody
public ResponseEntity insert(@RequestBody User user) {
Long userId = userService.saveUser(user);
return ok(new MapBean("id", userId));
}
entity

package com.**.entity;

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

/**
* 用户实体类
* Created by zhangmy on 2017/3/5.
*/
@Entity
@Table(name = "user")
public class User {
private String sn;//编号
private String name;//用户名
private String nickname;//昵称
private String mobile;//手机号
private Gender gender;//性别

@Enumerated
public Gender getGender() {
return gender;
}

public void setGender(Gender gender) {
this.gender = gender;
}

}


注:当Controller中以实体为参数保存数据时,如果实体中存在枚举类型,是无法直接转换成数据库对应值 ,需要配置将传过来的值对应枚举的key
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: