beforelinksaveevent和beforesaveevent

eivgtgni  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(308)

我想了解springdatarest中发出的事件。
然而,我发现,对于保存,在“保存”之前会发出两种不同类型的事件: BeforeSaveEvent 以及 BeforeLinkSaveEvent .
我找不到任何有用的关于两者区别的信息。在另一个stackoverflow页面上,我发现了这样一句话:“事件 beforeLinkSave 在一对多或多对多关系中保存新链接之前运行
但这仍然没有告诉我任何事情。
这是什么联系?rest链接?
数据库表之间的外键约束?或者别的什么?
实际上,我的两个猜测似乎都不符合逻辑。也许更容易理解,如果我能看到这些事件中的一个何时发射,而不是另一个。

fv2wmkja

fv2wmkja1#

json中的链接 http://localhost:8080/persons/1/address 对应于字段 Person.address 这是一个参考。

@Entity
public class Person {

  @Id @GeneratedValue
  private Long id;
  private String firstName, lastName;

  @OneToOne
  private Address address;
}

interface PersonRepository extends CrudRepository<Person, Long> {}

interface AddressRepository extends CrudRepository<Address, Long> {}
{
  "firstName" : "Frodo",
  "lastName" : "Baggins",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/persons/1"
    },
    "address" : {
      "href" : "http://localhost:8080/persons/1/address"
    }
  }
}

这个 BeforeLinkSaveEvent 发表于 org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController#createPropertyReference() .

参考

项目资源

对于域类型的每个关联,我们都公开以关联属性命名的链接。

关联资源

springdatarest为项资源具有的每个关联公开每个项资源的子资源。资源的名称和路径默认为关联属性的名称,可以通过在关联属性上使用@restresource进行自定义。

相关问题