【问题标题】:Auditing with spring-data-jdbc?使用 spring-data-jdbc 进行审计?
【发布时间】:2019-11-17 19:21:35
【问题描述】:

之前看到question的回复了! ,但它并没有解决我的问题。

跟踪spring-data-jdbc的代码,发现只要自定义了BeforeSaveEvent事件,并在该事件中设置了自定义ID,自定义事件执行后,会继续触发RelationalAuditingEventListener的执行# onApplicationEvent 在已设置为 ID 的实体上。做出 isNew 决定,ieNew=false。

// IsNewAwareAuditingHandler#markAudited // 触发 markModified 方法。 entity.isNew(object) ? markCreated(object) : markModified(object);

聚合根和实体有什么区别?使用第一次保存时如何设计一个可以用@CreatedDate@CreatedBy保存的实现? @LastModifiedDate@LastModifyBy?

【问题讨论】:

  • @Jens Schauder 非常感谢!由于地理网络限制,我无法连接到https://jira.spring.io/browse/DATAJDBC。我在github上创建了一个demo,可以重现刚才提到的问题。 spring-data-jdbc-demo感觉自己是个bug……还是我对审计的使用理解有误。
  • 无赖。他们为什么要阻止问题跟踪器!感谢转载者。我为它创建并发布:jira.spring.io/browse/DATAJDBC-390
  • 请问jira.spring.io/browse/DATAJDBC在哪里被屏蔽了?
  • 间歇性打不开,大部分时间状态是连续加载……我在中国……北京时间19:00到0:00之间,可以单页打开,然后点击页面中的其他链接会继续加载打开首页的时间大约是45秒...

标签: java spring aggregateroot auditing spring-data-jdbc


【解决方案1】:

你所描述的对我来说听起来像是一个错误。 如果您在事件侦听器中设置 id,它仍应作为新实例处理。 请在https://jira.spring.io/browse/DATAJDBC提出问题

如何设计一个在使用第一次保存时可以用@CreatedDate 和@CreatedBy 保存的实现? @LastModifiedDate 和@LastModifyBy?

作为一种解决方法,您可以将 IsNewAwareAuditingHandler 与您的事件处理程序结合起来设置 id。

聚合根和实体有什么区别?

entity 是由其 id 标识的对象,请注意 id 可能是隐式的。 见下文。

聚合是一个(通常很小的)对象集群,它们属于一起并在单个事务中持久化。 例如PurchaseOrderLineItem 都是属于同一聚合的实体。 单个对象完全有可能成为它自己的聚合体。

聚合根是聚合中的一个实体。 与聚合成员的所有交互都应通过聚合根。 这允许聚合根控制一致性。 例如,在上面给出的示例中,PurchaseOrder 将是聚合根。 因此,您不会有一个 getItems() getter 来返回项目的生命集合。相反,addItem(productId, amount)getItems() 可能会返回项目的副本,因此更改这些不会影响聚合。

Martin Fowlers 定义:https://www.martinfowler.com/bliki/DDD_Aggregate.html

Vaughn Vernon 撰写的关于聚合的精彩文章:

https://dddcommunity.org/wp-content/uploads/files/pdf_articles/Vernon_2011_1.pdf

https://dddcommunity.org/wp-content/uploads/files/pdf_articles/Vernon_2011_2.pdf

https://dddcommunity.org/wp-content/uploads/files/pdf_articles/Vernon_2011_3.pdf

【讨论】:

    猜你喜欢
    • 2017-05-22
    • 2012-11-15
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2019-08-08
    • 2015-01-20
    相关资源
    最近更新 更多