实现记录某实体的最后修改时间和操作人id

创建一个BaseEntity基类,包含最后修改时间和操作人ID字段,子类通过继承实现记录实体变动信息的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建立一个baseEntity类,类中含有两个属性,算了,直接上代码

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;

import org.apache.commons.lang3.StringUtils;
import org.hibernate.annotations.GenericGenerator;

import com.trs.netInsight.util.UserUtils;
import com.trs.netInsight.widget.user.entity.User;

import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
@MappedSuperclass
public abstract class BaseEntity implements Serializable {

	private static final long serialVersionUID = -2955330485748809219L;
	
	protected interface SaveView {}
	public interface DisplayView {}

	@Id
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "uuid")
	@Column(name = "`id`")
	private String id;

	/**
	 * 对象创建时间
	 */
	@Column(name = "`created_time`", updatable = true)
	private Date createdTime;

	/**
	 * 创建用户
	 */
	@Column(name = "`createduser_id`", updatable = false)
	private String createdUserId;

	/**
	 * 最后修改时间
	 */
	@Column(name = "`last_modified_time`")
	private Date lastModifiedTime;

	/**
	 * 最后修改用户
	 */
	@Column(name = "`last_modifieduser_id`")
	private String lastModifiedUserId;

	@PreUpdate   // 此处能实现实时记录最后操作时间
	protected void onUpdate() {
		lastModifiedTime = new Date();
//		System.out.println(UserUtils.getUser());
		lastModifiedUserId = UserUtils.getUser().getId();
//		RedisFactory.deleteAllKey(id);
	}

}

其他实体类想实现记录操作信息的只需要继承他即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值