1.增長枚舉類java
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("訪問權限"),數據庫存的是AUTHORITYapp
解決方案:使用註解@transient,該註解會忽略實體中某個字段與數據庫字段的映射,不插入數據到數據庫,也就是臨時存儲數據,能夠供前臺使用this
4.user實體類spa
@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的值,而且是轉換後的中文值code
@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=AUTHORITYblog
返回實體的值爲: get
{"id":7,"name":"ff","age":23,"address":"jinan","right":"AUTHORITY","rightVal":"訪問權限"}
7.前臺顯示字段也要修改
本來顯示字段爲:
field: 'right', title: '權益類型', //width: 100, align: 'left', valign: 'top',
修改後的爲:
field: 'rightTypeVal'//後臺中文顯示字段