java - 为什么我的自定义 AbstractMongoEventListener 没有被调用?
问题描述
我创建了自定义侦听器来保存引用的文档,但它没有被调用。
文档:
@Getter
@Setter
@ToString(exclude = {"addresses","accounts"})
@Document("customers")
public class Customer {
private String id;
private String firstName;
private String lastName;
@DBRef(lazy = true)
private List<Address> addresses;
@DBRef(lazy = true)
private List<Account> accounts;
}
听众:
@Component
public class CascadeSaveListener extends AbstractMongoEventListener<Customer> {
private MongoTemplate mongoTemplate;
public CascadeSaveListener(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
@Override
public void onBeforeSave(BeforeSaveEvent<Customer> event) {
Customer customer = event.getSource();
customer.getAccounts()
.forEach(mongoTemplate::save);
customer.getAddresses().forEach(mongoTemplate::save);
}
}
从存储库创建文档的方法:
@Override
public Customer createCustomer(Customer customer) {
return mongoTemplate.insert(customer);
}
我保存客户的应用程序运行器
@Bean
public ApplicationRunner applicationRunner(CustomerRepository customerRepository){
return args-> customerRepository.createCustomer(createCustomer());
}
但它没有被调用,我得到错误,为什么会发生?
解决方案
推荐阅读
- r - 从数据框的某些特定单元格中删除“NA”。不是所有的人
- postgresql - PostgreSQL 将当前序列值插入到另一个有条件的字段
- css - 如何减少响应式布局中的列数?
- css - 将鼠标悬停在文本上以使用 CSS 在另一个 div(不是子级)中显示图像
- sql - SQL Server:从字符串转换日期和/或时间超过 12 点时转换失败
- python - 使用占位符将数组大小调整为不可能的形状
- sql - 将一组行转换为sql中的新列
- python - 梯度不会随着步骤而改变 - Tensorflow
- r - ggplot - 带有自由缩放 facet_wrap 的 geom_text
- c# - 如何自动计算/更新维护表中的到期日