BaseEntity.kt
package com.example.templateproject.persistence.entity
import com.example.templateproject.persistence.configuration.EntityChangeListener
import jakarta.persistence.Column
import jakarta.persistence.EntityListeners
import jakarta.persistence.GeneratedValue
import jakarta.persistence.GenerationType
import jakarta.persistence.Id
import jakarta.persistence.MappedSuperclass
import org.springframework.data.annotation.CreatedDate
import org.springframework.data.annotation.LastModifiedDate
import org.springframework.data.jpa.domain.support.AuditingEntityListener
import java.time.Instant
@MappedSuperclass
@EntityListeners(AuditingEntityListener::class, EntityChangeListener::class)
abstract class BaseEntity(
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator")
val id: Long? = null,
@CreatedDate
@Column(name = "created_date", updatable = false, nullable = false)
var createdDate: Instant? = null,
@LastModifiedDate
@Column(name = "last_modified_date")
var modifiedDate: Instant? = null,
)