当我们使用spring data jpa开发的时候,会将实体类中的成员变量与表中的字段一一对应,当我们在实体类中加上一个不与数据库表一一对应的成员变量的时候,此时我们只要在这个成员变量上加上注解@Transient
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
如果一个属性并非数据库表的字段映射,务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
比如现在有实体类Message,但是我想在使用它时想要多用一个字段来接收未读消息的数量 unReadCount,此时只要在字段前加上@Transient注解就可以了。记住要引入 import javax.persistence.Transient;
import javax.persistence.Transient;
数据库表字段与result不一致时用@Column注解
package com.ms.base.domain;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
@Table(name = "department")
@Data
public class Department {
@Id
private Long id;
@Column(name = "created_time")
private Date createdTime;
@Column(name = "updated_time")
private Date updatedTime;
/**
* 部门名称
*/
private String name;
/**
* 企业id
*/
@Column(name = "enterprise_id")
private Long enterpriseId;
/**
* 上级部门id
*/
@Column(name = "parent_id")
private Long parentId;
//企业部门下 用户列表
private List<User> userList;
//部门人数
@Transient
private Integer personNum;
}