Hibernate @Transient实现临时字段映射

来源:互联网 发布:中文翻译阿拉伯语软件 编辑:程序博客网 时间:2024/06/05 19:52

Hibernate @Transient实现临时字段映射

@Transient还可以在持久化类中直接获取关联表中的字段值
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic

比如下面代码,由整型字段state生成字符串型containerState临时字段。

import javax.persistence.*;import java.util.Date;@Entity@Table(name="container")public class ContainerBean {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private String id;    private String name;    private Integer state;    /**     * 临时字段,由原有字段合成新字段,     * @Transient还可以在持久化类中直接获取关联表中的字段值     * @Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性     * 如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic     */    @Transient    private String containerState;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getState() {        return state;    }    public void setState(Integer state) {        this.state = state;    }    public String getContainerState() {        if(this.getState()==1){            return "运行中";        }else if(this.getState()==0){            return "未运行";        }else{            return "异常";        }    }    public void setContainerState(String containerState) {        this.containerState = containerState;    }}