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;
}
}