java sql变更跟踪_如何使用Spring动态跟踪数据库更改?

我使用spring,spring-data,spring-cronjobs和java-mail。我需要立即扫描my-

sql数据库中存在的表中的更改,并将有关更改的邮件发送给管理员。

我要做的所有工作都是运行cronjob来扫描表中的所有更改,但这是一个繁重的过程,因为表与货币交易有关,并且消耗大量资源,因此应用程序变得太慢。

因此,是否有更好的过程可用来跟踪数据库中的当前更改。例如,如果有任何方法可以在spring设置观察者以触发数据库更改过程,则将很有帮助。

以下是我正在扫描的表的实体的示例。

/** Import statements **/

@Entity

public class UserWalletTransaction {

@Id

@GeneratedValue

private Long Id;

private String toAccount;

@ManyToOne(fetch = FetchType.LAZY)

User user;

@ManyToOne(fetch = FetchType.LAZY)

Wallet wallet;

private String senderOrMobile;

private String benificiaryName;

private String beniMobile;

private Double transferAmount;

private Double sTax;

private Double charge;

private Double netAmount;

private String apiTId;

private String apiComment;

private String agentId;

private Double apiSTax;

private Double apiCharge;

private Double apiNetAmount;

private Double apiBalanceAmount;

private String transactionMode;

private String bankName;

private String userTrackId;

private String referenceNumber;

private String operatorDescription;

private String mobileNumber;

private String rechargeDateTime;

private String operatorTransactionId;

private String hermesPnr;

private String utId;

private String status;

private Double previousAmount;

private Double balanceAmount;

private Double amountTransacted;

private String transactionType;

private boolean isRaised;

private boolean isRefunded;

@Column(name = "created_by")

private String createdBy;

@Column(name = "created_date")

private Date createdDate;

@Column(name = "updated_by")

private String updatedBy;

@Column(name = "updated_date")

private Date updatedDate;

private String operationPerformed;

@OneToOne

private UserWalletTransaction relationalTransaction;

private String errorComments;

@OneToOne

private User debitUser;

@OneToOne

private User creditUser;

@OneToOne

private ServiceProvider serviceProvider;

@OneToOne

private RefundRequest refundRequests;

..... Getters and setters......

}

以下是我用来扫描数据库后启动邮件的示例cron作业。

/** Import statements **/

@Component

@EnableScheduling

public class ValidateCron {

@Autowired

RechargeService rechargeService;

@Scheduled(fixedDelay = 2)

public void demoServiceMethod() {

// Perform tasks related to scan and track the number of records added //after the previous scan. Fire a mail if any change in the database is found.

}

}

请分享我可以改善此功能性能的任何方法。提前致谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值