枚舉類enum應用以及注解@transient應用


 

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'//后台中文顯示字段

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM