1.增加枚舉類
public enum RightTypeEnum {
AUTHORITY("訪問權限")
private String type;
RightTypeEnum(String type) {
this.type=type;
}
public String getType() {
return type;
}
}
2. 在controller中進行dubug,具體的值見下方截圖
String val = entity.getRight();
String en = RightTypeEnum.AUTHORITY.toString();
String ch = RightTypeEnum.AUTHORITY.getType();
String en1 = RightTypeEnum.valueOf(val).toString();//獲取對應變量的英文值
String ch1 = RightTypeEnum.valueOf(val).getType();//獲取中文值
3. @transietn使用場景:前台界面需要顯示數據庫某個字段的中文枚舉值,但是數據庫該字段是枚舉的英文,例如:AUTHORITY("訪問權限"),數據庫存的是AUTHORITY
解決方案:使用注解@transient,該注解會忽略實體中某個字段與數據庫字段的映射,不插入數據到數據庫,也就是臨時存儲數據,可以供前台使用
4.user實體類
@Entity @Table(name = "t_user") public class UserEntity implements Serializable { @Id @GeneratedValue @Column(name = "t_id") private Long id; @Column(name = "t_right") private String right;
//在不需要映射到數據庫的字段上加上@transient注解 @Transient private String rightVal;//該字段用於存枚舉字段的中文值 //其他字段省略 public String getRight() { return right; } public void setRight(String right) { this.right = right; } //主要說明此處的作用 public String getRightVal() { String rightValue = RightTypeEnum.valueOf(this.right).getType(); this.rightVal = rightValue; return rightVal; } public void setRightVal(String rightVal) { this.rightVal = rightVal; } }
5. controller,這樣返回的實體就會帶有字段 rightVal的值,並且是轉換后的中文值
@RequestMapping(value = "/save",method = RequestMethod.GET)
public UserEntity save(UserEntity entity)
{
return userJPA.save(entity);
}
6.http://127.0.0.1:8080/user/save?name=ff&age=23&address=jinan&right=AUTHORITY
返回實體的值為:
{"id":7,"name":"ff","age":23,"address":"jinan","right":"AUTHORITY","rightVal":"訪問權限"}
7.前台顯示字段也要修改
原本顯示字段為:
field: 'right', title: '權益類型', //width: 100, align: 'left', valign: 'top',
修改后的為:
field: 'rightTypeVal'//后台中文顯示字段