应用需求:
- 数据库表中字段无法满足页面展示需求。
- 根据表生成的实体类中不包含除表数据外的其他所需字段。
- 数据库中没有,但又要使用。
使用:
- 页面需要的所有字段属性写入到实体类中。
- 查询映射,会将相应数据映射到实体类的属性当中(用不用
@Transient
修饰都将被映射)。 - 不需要序列化的属性前添加
@Transient
注解,添加注解后属性就不会进行序列化。
示例:
@Table(name = "names")
@Data
public class PdNames implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private String id;
@Column(name = "name1")
private String namea;
//产品官网链接地址
@Column(name = "name2")
private String nameb;
@Transient
private String namec;
@Transient
private String named;
代码块中: namea nameb 是数据库中的数据
namec named 是其它位置查询的数据
小结:
- 被
@Transient
注解修饰的属性,不再是对象持久化的一部分。 - 只能用来修饰变量,不能用来修饰方法和类(本地属性不能被修饰,如果是用户自定义变量,则需要实现序列化接口)。
- 静态变量不管是否被
@Transient
修饰,都不能被序列化。