half commited
This commit is contained in:
@@ -6,29 +6,37 @@ import java.time.LocalDateTime;
|
||||
import jakarta.persistence.PrePersist;
|
||||
import jakarta.persistence.PreUpdate;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Date;
|
||||
|
||||
import jakarta.persistence.PrePersist;
|
||||
import jakarta.persistence.PreUpdate;
|
||||
|
||||
public class AuditListener {
|
||||
|
||||
@PrePersist
|
||||
public void prePersist(Object entity) {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
Date now = new Date(); // current date + time
|
||||
|
||||
// Creation fields
|
||||
// creation fields
|
||||
setIfNull(entity, "createDateTime", now);
|
||||
setIfNull(entity, "createdBy", null); // handle manually in service if needed
|
||||
setIfNull(entity, "createdEpochDate", System.currentTimeMillis());
|
||||
setIfNull(entity, "createdBy", null);
|
||||
setIfNull(entity, "createdEpochDate", now.getTime());
|
||||
|
||||
// Set isDeleted = false on creation
|
||||
// default soft delete flag
|
||||
setAlways(entity, "isDeleted", Boolean.FALSE);
|
||||
}
|
||||
|
||||
/*
|
||||
* @PreUpdate public void preUpdate(Object entity) { LocalDateTime now =
|
||||
* LocalDateTime.now();
|
||||
*
|
||||
* // Update fields setAlways(entity, "updatedDateTime", now); setIfNull(entity,
|
||||
* "updatedBy", null); // you can override manually in service setAlways(entity,
|
||||
* "modifiedEpochDate", System.currentTimeMillis()); }
|
||||
*/
|
||||
@PreUpdate
|
||||
public void preUpdate(Object entity) {
|
||||
Date now = new Date();
|
||||
|
||||
// update fields
|
||||
setAlways(entity, "updatedDateTime", now);
|
||||
setIfNull(entity, "updatedBy", null);
|
||||
setAlways(entity, "modifiedEpochDate", now.getTime());
|
||||
}
|
||||
|
||||
private void setIfNull(Object entity, String fieldName, Object value) {
|
||||
try {
|
||||
Field f = findField(entity.getClass(), fieldName);
|
||||
@@ -37,8 +45,7 @@ public class AuditListener {
|
||||
boolean accessible = f.canAccess(entity);
|
||||
f.setAccessible(true);
|
||||
|
||||
Object currentValue = f.get(entity);
|
||||
if (currentValue == null) {
|
||||
if (f.get(entity) == null) {
|
||||
f.set(entity, value);
|
||||
}
|
||||
|
||||
@@ -53,9 +60,7 @@ public class AuditListener {
|
||||
|
||||
boolean accessible = f.canAccess(entity);
|
||||
f.setAccessible(true);
|
||||
|
||||
f.set(entity, value);
|
||||
|
||||
f.setAccessible(accessible);
|
||||
} catch (Exception ignored) {}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.billpaymentservice.bbps.entites;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.EntityListeners;
|
||||
@@ -16,18 +18,18 @@ import lombok.Setter;
|
||||
@EntityListeners(AuditListener.class)
|
||||
@Getter
|
||||
@Setter
|
||||
public abstract class Auditable {
|
||||
public abstract class Auditable implements Serializable {
|
||||
@Column(name = "create_date_time")
|
||||
private LocalDateTime createDateTime;
|
||||
private Date createDateTime;
|
||||
|
||||
@Column(name = "updated_date_time")
|
||||
private LocalDateTime updatedDateTime;
|
||||
private Date updatedDateTime;
|
||||
|
||||
@Column(name = "create_by")
|
||||
private LocalDateTime createdBy;
|
||||
private String createdBy;
|
||||
|
||||
@Column(name = "updated_by")
|
||||
private LocalDateTime updatedBy;
|
||||
private String updatedBy;
|
||||
|
||||
@Column(name = "created_epoch_date")
|
||||
private Long createdEpochDate;
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package com.billpaymentservice.bbps.entites;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -11,30 +7,15 @@ import lombok.NoArgsConstructor;
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Entity
|
||||
@Table(name = "bbps_payment_initiate")
|
||||
public class PaymentInitiate {
|
||||
|
||||
public class PaymentInitiate extends Auditable {
|
||||
// Kept as a POJO for compatibility but not annotated as @Entity so JPA won't map it
|
||||
private String reqId;
|
||||
private String bankTxnId;
|
||||
private String clientUserId;
|
||||
private String mid;
|
||||
private String txnId;
|
||||
private String status;
|
||||
private String userId;
|
||||
|
||||
@Id
|
||||
@Column(name = "req_id")
|
||||
private String reqId;
|
||||
|
||||
@Column(name = "bank_txn_Id", nullable = false)
|
||||
private String bankTxnId;
|
||||
|
||||
@Column(name = "client_user_id")
|
||||
private String clientUserId;
|
||||
|
||||
@Column(name = "mid")
|
||||
private String mid;
|
||||
|
||||
@Column(name = "txn_id")
|
||||
private String txnId;
|
||||
|
||||
@Column(name = "status")
|
||||
private String status;
|
||||
|
||||
@Column(name = "user_id")
|
||||
private String userId;
|
||||
}
|
||||
Reference in New Issue
Block a user