javabean 中临时字段的处理:@Transient

53 篇文章 2 订阅

当我们使用spring data jpa开发的时候,会将实体类中的成员变量与表中的字段一一对应,当我们在实体类中加上一个数据库表没有对应字段的成员变量的时候,此时我们只要在这个成员变量上加上注解@Transient

@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性. 如果一个属性并非数据库表的字段映射,务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
比如现在有实体类Message,但是我想在使用它时想要多用一个字段来接收未读消息的数量 unReadCount,此时只要在字段前加上@Transient注解就可以了。当数据库表字段与result不一致时用@Column注解

依赖包

import javax.persistence.Transient;

代码

package com.xy.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;
 
@Entity
@Table(name = "T_SS_LLJLB")
@Data
@Accessors(chain = true)
public class TSsLljlb extends BaseEntity {

    public static final String TABLE = "T_SS_LLJLB";

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    private Integer id;

    @ApiModelProperty(value = "操作人")
    @Column(name = "user_id", length = 50)
    private String userId;

    @ApiModelProperty(value = "摄像机ID")
    @Column(name = "camera_id", length = 50)
    private String cameraId;

    @ApiModelProperty(value = "摄像机名称")
    @Column(name = "camera_name", length = 50)
    private String cameraName;

    @ApiModelProperty(value = "设备ID")
    @Column(name = "device_id", length = 50)
    private String deviceId;

    @ApiModelProperty(value = "通道ID")
    @Column(name = "channel_id", length = 50)
    private String channelId;

    @ApiModelProperty(value = "线路编码")
    @Column(name = "line_code", length = 50)
    private String lineCode;

    @ApiModelProperty(value = "线路名称")
    @Column(name = "line_name", length = 50)
    private String lineName;

    @ApiModelProperty(value = "操作类型,1-拉流 0-关流")
    @Column(name = "operation")
    private Integer operation;

    @ApiModelProperty(value = "拉流时间(页面请求视频流的时间)")
    @Column(name = "pull_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date pullTime;

    @ApiModelProperty(value = "推流时间(页面获取视频URL的时间)")
    @Column(name = "push_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date pushTime;

    @ApiModelProperty(value = "页面关流时间(页面请求关闭视频流的时间)")
    @Column(name = "page_close_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date pageCloseTime;

    @ApiModelProperty(value = "服务关流时间(分转发服务实际关闭视频流的时间)")
    @Column(name = "service_close_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date serviceCloseTime;

    @ApiModelProperty(value = "取流状态(取流成功-200,取流失败-报错编码)")
    @Column(name = "status")
    private Integer status;

    @ApiModelProperty(value = "创建记录时间")
    @Column(name = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "更新记录时间")
    @Column(name = "update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "临时记录摄像头拉流次数")
    @Transient
    private Integer num;

    public TSsLljlb initTSsLljlb(TSsLljlb tSsLljlb) {

        return this.setCreateTime(new Date());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值