如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient ,否则,ORM框架默认其注解为@Basic
这个东东还是挺有用的。
我在 jpa 中 模型中使用了 @Transient 标记,让某个变量不要持久化到数据表中。示例如下:
@Entity
@Table(name = "options")
public class Options implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String type;
private String name;
private String value;
private Integer index; //在列表中的顺序
public Options() {
}
@Id
@Column(name = "id", unique = true, nullable = false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name = "type", length = 100)
public String getType() {
return this.type;
}
public void setType(String type) {
this.type = type;
}
@Column(name = "name", length = 100)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "value", length = 100)
public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
}
@Transient //非持久化
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
}