package com.rongyichuang.common.entity; import jakarta.persistence.*; import java.time.LocalDateTime; /** * 基础实体类 */ @MappedSuperclass public abstract class BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** * 创建时间 */ @Column(name = "create_time", nullable = false, updatable = false) private LocalDateTime createTime; /** * 更新时间 */ @Column(name = "update_time") private LocalDateTime updateTime; /** * 创建用户ID */ @Column(name = "create_user_id") private Long createUserId; /** * 更新用户ID */ @Column(name = "update_user_id") private Long updateUserId; /** * 版本号(乐观锁) */ @Version @Column(name = "version", nullable = false) private Long version = 0L; @PrePersist protected void onCreate() { createTime = LocalDateTime.now(); updateTime = LocalDateTime.now(); if (version == null) { version = 0L; } } @PreUpdate protected void onUpdate() { updateTime = LocalDateTime.now(); } // Getters and Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public LocalDateTime getCreateTime() { return createTime; } public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; } public LocalDateTime getUpdateTime() { return updateTime; } public void setUpdateTime(LocalDateTime updateTime) { this.updateTime = updateTime; } public Long getCreateUserId() { return createUserId; } public void setCreateUserId(Long createUserId) { this.createUserId = createUserId; } public Long getUpdateUserId() { return updateUserId; } public void setUpdateUserId(Long updateUserId) { this.updateUserId = updateUserId; } public Long getVersion() { return version; } public void setVersion(Long version) { this.version = version; } }