使用 Spring Data Neo4j 进行审计

2023-12-04

我目前正在开发一个使用 Spring Data Neo4j 的项目。每当创建 NodeEntity 时,我想创建一个引用的 Audit NodeEntity,其中包含创建日期和用户。

我提出的一个解决方案是编写一个 AOP 方面,它挂接在我的服务层的 create 方法上。这对于未级联的实体来说效果很好,但是级联的实体又如何呢?它们没有在我的服务层中显式传递,因此我的 AOP 类不会拦截它们。 JPA 中是否有实体侦听器之类的概念,或者我如何挂钩此机制?


从 Spring Data Neo4j 2.2 开始,我们可以使用 AuditingEventListener 来审计实体。 Spring Data 1.5 提供了@创建日期, @由...制作, @最后修改日期 and @最后修改者注释。您可以按如下方式使用它们:

@NodeEntity
public class Entity {

    @GraphId
    private Long id;

    @CreatedDate
    private Long date;

}

确保配置 AuditingEventListener:

@Configuration("db")
@EnableNeo4jRepositories(basePackages = { "your.package" })
@EnableTransactionManagement
public class DatabaseSpringConfiguration extends Neo4jConfiguration {

    @Bean(destroyMethod = "shutdown")
    public EmbeddedGraphDatabase graphDatabaseService() {
        return new EmbeddedGraphDatabase("data/neo4j.db");
    }

    @Bean
    public AuditingEventListener auditingEventListener() throws Exception {
        return new AuditingEventListener(new IsNewAwareAuditingHandler<Object>(isNewStrategyFactory()));
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Spring Data Neo4j 进行审计 的相关文章

  • Spring Data JPA NamedStoredProcedureQuery 多个输出参数

    我有一个简单的存储过程 用于测试 Spring Data JPA 存储过程功能 create or replace procedure plus1inout arg in int res1 out int res2 out int is B
  • 有没有办法从密码结果中删除 _id _type

    我使用 apoc convert toTree 过程将查询结果转换为树 然后过滤结果以仅获取几个属性 但是 在生成的有效负载中 我得到了两个无法删除的属性 id 和 type 这是我的查询 我应该只获取 prefLabel 和 uri MA
  • Spring data Jpa实体不受管理调用刷新时出现异常

    我有一个数据库代码 jar 我在不同的应用程序中使用它来访问数据库 我在用spring data jpa 我需要调用刷新来检查来自其他应用程序的数据库行的更改 这里我如何实现它 我的StudentRepository界面 public in
  • 同时运行 Gremlin-Server 和 NEO4J Server

    目前看来我们不能同时运行两者Neo4J服务器 and Gremlin服务器同时 有什么办法可以同时运行两者吗 NEO4J 正在运行 我尝试启动 Gremlin Server 然后出现以下错误 java lang RuntimeExcepti
  • Cypher:从集合中提取唯一值

    I have MATCH x rels gt y RETURN extract r in rels r property as collected where collected是路径上所有关系的属性的集合 例如 null 4 null 4
  • Spring Boot自动装配存储库始终为空[重复]

    这个问题在这里已经有答案了 每次我进入我的服务类时 存储库似乎都没有自动连接 因为它不断抛出 NullPointerException 谁能帮我检查一下我缺少什么吗 这是我的代码 演示应用程序 java package com exampl
  • 如何使用 Spring Crud/Jpa Repository 实现 DDD

    我想通过使用 Spring 实现 DDD 来创建一个应用程序 假设我有一个业务实体 Customer 和一个接口 CustomerRepository 由于春天提供了CrudRepository and JpaRepository默认情况下
  • with 子句做什么?新4j

    I don t understand what WITH clause do in Neo4j I read the The Neo4j Manual v2 2 2 http neo4j com docs stable query with
  • 如何结识有相同兴趣的朋友的朋友?

    交朋友的朋友很容易 我得到了这个 看起来效果很好 g v 1 in FRIEND in FRIEND filter it g v 1 但我想做的只是结交有相同兴趣的朋友的朋友 下面我希望 Joe 被推荐为 Moe 而不是 Noe 因为他们没
  • Spring Data JPA 存储库,具有规范、分页和标准 fetch-join

    我正在使用具有规范和分页功能的 Spring Data JPA 存储库实现实体列表的搜索 过滤服务 我正在尝试减少查询数量 n 1 问题 并使用条件获取机制获取嵌套数据 我有两个实体类 Entity Table name delegatio
  • 混合模型优先和代码优先

    我们使用模型优先方法创建了一个 Web 应用程序 一名新开发人员进入该项目 并使用代码优先方法 使用数据库文件 创建了一个新的自定义模型 这 这是代码第一个数据库上下文 namespace WVITDB DAL public class D
  • Cypher Linked List:如何按索引取消移位和替换

    我正在尝试按照此处的推荐使用 Neo Cypher 创建链表结构 创建时CYPHER存储相同标签的节点关系顺序 https stackoverflow com questions 33263822 cypher store order of
  • 无法打开 JDBC 连接以执行 DDL

    我的 spring beans 出现以下错误 创建名称为 employeeRepositoryDAOImple 的 bean 时出错 通过 setSessionFactory 方法表达的依赖关系未得到满足 参数0 嵌套异常是 org spr
  • 在 Ubuntu 中更改 Neo4j 中的数据存储位置

    我已经成功安装了neo4j 端口号为7474 并且工作正常 我的问题是数据存储在 var lib neo4j 该目录中的该位置很快就会满 我想更改数据存储位置 这怎么可能 我尝试编辑该文件 etc neo4j neo4j server pr
  • 自定义存储库的 Spring Data Solr 优先级

    我需要在 Spring Data Solr 自定义存储库中实现以下内容 X 或 Y 和 Z 我当前的代码如下 Criteria criteria new Criteria x is X VALUE criteria criteria or
  • neo4j:CYPHER查询节点的所有属性

    我们正在评估 Neo4J 的未来项目 目前只是尝试学习 Cypher 及其功能 但到目前为止 我认为应该非常简单的一件事却让我无法理解 我希望能够查看任何给定节点的所有属性及其值 在 SQL 中 会是这样的 select from Tabl
  • 从存储库获取时,Doctrine 如何在不调用 __construct 方法的情况下创建实体?

    我在构造函数中编写了下一个代码 public function construct die creating entity 当我创建实体实例时new运算符如 entity new Entity 我看到creating entity text
  • 如何在图数据库(如 Neo4j)中对现实世界的关系进行建模?

    我有一个关于在图形数据库中建模的一般性问题 但我似乎无法解决这个问题 您如何建模这种类型的关系 牛顿发明了微积分 In a 简单图 http docs neo4j org chunked snapshot graphdb neo4j rel
  • JPA - OneToOne 外键作为主键

    我有一个表 需要其主键作为其他表的外键 因此是单向的一对一关系 每本书只有一个作者 如下所示 Entity public class Author Id String code getters and setters Entity publ
  • Cypher Neo4j 无法加载外部资源

    在 Windows 环境中 我尝试加载带有以下语句的 csv 文件 LOAD CSV WITH HEADERS FROM file E Neo4j customers csv AS row 它似乎无法正常工作并返回 无法加载外部资源 文件

随机推荐

  • 保护C++程序免遭反编译[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以反编译C Builder exe C Builder exe 安全吗 我使用 Microsoft Visual C 2010 Express 来编写程序 当我想分发我的程序时 我使用 发布 配
  • 如何处理JPA命名查询中数字类型的空值

    我想将两个参数传递给namedquery 一种是数字类型 另一种是字符串类型 它们都可以为空 例如 id null username joe 和 id 1 username joe 是两个不同的结果 在namedQuery中 如果id为nu
  • 找不到静态文件 - 在 Heroku 上部署 Django

    我正在尝试在 Heroku 上部署 Django 站点 但在让应用程序查找我的静态文件时遇到问题 我用过python manage py collectstatic将我的静态文件收集到 staticfiles 文件夹中 但我的应用程序似乎仍
  • HttpWebRequest 不发送 UserAgent

    我对 net 的整个 Web 端很陌生 并且遇到了一个小问题 我正在尝试执行以下 HttpWebRequest 操作 String uri https skyid sky com signup HttpWebRequest request
  • 在 Pydantic v2 中使用 bson.ObjectId

    I found 一些例子关于如何在其中使用 ObjectIdBaseModel类 基本上 这可以通过创建 Pydantic 友好的类来实现 如下所示 class PyObjectId ObjectId classmethod def get
  • 什么是交错音频? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我在核心音频文档中多次看到此交错音频 有人可以向我解释此属性的真正功能是什么吗 一般来说 如果您有 2 个通道 我们将它们称为 L 左 和 R 右 并且您想要传输或存储 20 个样本
  • PHP 中的换行帮助

    上面是我正在使用的以下代码 我想要的输出是 title reportno 但我得到的输出是 title reportno 谁能告诉我我在换行中做错了什么 您需要添加一个 br 标记到您的输出 abc output
  • httpclient.execute(httpget) 之后的 Android 代码没有在 try 中运行(使用 AsyncTask)

    我正在尝试从网站获取数据并将其解析到我的 Android 应用程序中 不幸的是我什至没有到达解析数据的部分 该代码在以下行之后不会运行 HttpResponse response httpclient execute httpget 结果是
  • 使用 Transformer 模型进行多实例分类

    我使用这里的变压器Keras 文档示例用于多实例分类 每个实例的类取决于一个包中的其他实例 我使用变压器模型是因为 它不对数据之间的时间 空间关系做出任何假设 这非常适合处理一组对象 例如 每个包最多可以有 5 个实例 每个实例有 3 个特
  • C# 通过子字符串区分 List

    我想从字符串列表中删除重复项 我通过使用不同的来做到这一点 但我想在比较时忽略第一个字符 我已经有一个删除重复项的工作代码 但我的代码还删除了每个字符串的第一个字符 List
  • 根据值更改甘特图中的条形颜色

    我想根据我传递的值更改甘特图中条形的颜色 什么时候Percent done等于高于 100 条形图应为红色 是否可以 https jsfiddle net 1cez1duf google charts load current packag
  • GoogleApiClient 尚未连接异常

    我正在开发的应用程序有时可以正常工作 但有时却会出现此错误 致命异常 java lang RuntimeException 无法暂停活动 com example dell locationapi com example dell locat
  • QStackedWidget - 一页一页地更改页面

    有没有办法更改 QStackedWidget 的页面而不指定实际索引 self homeb clicked connect lambda self stackedWidget setCurrentIndex 0 因此 我不想直接使用按钮直接
  • 统计其他表中不存在的所有记录 - SQL 查询

    我有两 2 个表 我正在尝试计算 Table1 和 Table1 delta 中的所有记录 而 Table1 delta 中的页面名称尚未列出到 Table1 中 如果 Table1 delta 中的 pagename 被列出到 Table
  • Service Fabric 默认发布配置文件而不是 Local.xml

    我们公司正在使用 Service Fabric 开发新应用程序 我们遇到的一个常见问题是 多个开发人员使用远程服务器上的队列 数据库 存储 每个开发人员对此都有不同的配置 所有设置都存储在每个环境的 ApplicationParameter
  • Azure B2C - 在 Azure 中为不同用户类型设置多个登录的单一应用程序

    我正在构建一个 ASP Net core 应用程序 我有两种类型的用户 消费者和供应商 如何在 Azure AD B2C 中为两种不同类型的用户设置两种不同的注册 登录 因此 在我的 ASP 中 我可以有一个页面供消费者使用第三方提供商进行
  • 根据时间范围变量重复行 - R

    我的数据中有一个列变量 它是一个时间范围 datesemployed 样本数据如下 name datesemployed university Kate Oct 2015 Jan 2016 Princeton Sue Nov 2015 De
  • SQL Server 树层次结构和具有重复记录 ID 的嵌套集

    鉴于我有这个结果集结构 多余的字段已被删除 Id ParentId Name Depth 是否可以按树顺序返回记录 即Parent then Children if a Child is a Parent 那么他们的Children 如果不
  • 如何在 Android 中暂停计时器?

    我已经浏览了链接http dewful com tag basic android timer关于android中的定时器应用程序 它运行良好 我需要添加暂停按钮来停止计时器 并添加播放按钮以从我停止的位置再次启动计时器 我能完成那个任务吗
  • 使用 Spring Data Neo4j 进行审计

    我目前正在开发一个使用 Spring Data Neo4j 的项目 每当创建 NodeEntity 时 我想创建一个引用的 Audit NodeEntity 其中包含创建日期和用户 我提出的一个解决方案是编写一个 AOP 方面 它挂接在我的