gpt4 book ai didi

java - 如何实现触发Spring-Data Repository的Before/After save方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:45:53 25 4
gpt4 key购买 nike

我有大量的实体。对于每个实体,我都有一个扩展 CrudRepository 的接口(interface)。每个实体都使用 *Repository.save(entity) 方法保存。

我想实现这样的记录器:

  • 有一个独立的日志数据库,有两个表:log 和 logdata
  • log 表:
    • 创建
    • 用户名
  • logdata 表:
    • 日志编号
    • 字段名
    • 值(字符串)
  • savedelete 方法运行时,MyRepositoryTrigger 应该写入一条日志消息,其中所有字段的名称和字段值都已更改。

但是这样怎么写呢?

最佳答案

对于触发器功能,您必须查看您的数据库,但很可能它不能保证您的 CrudRepository 数据库 Activity 的排他性,因为它是在创建/删除/更新表/列时设置的。

相反,如果您想模仿触发器功能,这意味着无需每次都在 CrudRepository#save()/delete() 功能之前/之后进行设置,那么您会更好关闭使用 Spring AOP 功能

@After("execution(* my.CrudRepository.save(..))")
public void log(JoinPoint point) {
log.info(point.getSignature().getName() + " was called..");
}

你可以找到extensive Spring AOP programming documentation in the Spring Docs

关于java - 如何实现触发Spring-Data Repository的Before/After save方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com