thanksforallthefish
12/13/2018, 2:27 PMinterface Auditable {
var createdBy: Auditor?
var createdAt: Date?
var modifiedBy: Auditor?
var modifiedAt: Date?
}
@Embeddable
data class BaseAuditable(
@Column(name = "modified_at")
@LastModifiedDate
override var modifiedAt: Date? = Date(),
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "modified_by")
@LastModifiedBy
override var modifiedBy: Auditor? = null,
@Column(name = "created_at")
@CreatedDate
override var createdAt: Date? = null,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "created_by")
@CreatedBy
override var createdBy: Auditor? = null
) : Auditable
@Entity(name = "masterplan")
@EntityListeners(AuditingEntityListener::class)
data class Masterplan(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Int? = null,
@Embedded
var auditable: Auditable = BaseAuditable()
) : Auditable by auditable
and now audited values are not set