gpt4 book ai didi

hibernate - Spring Data Repository Save - 如何知道数据是否真的保存了?

转载 作者:行者123 更新时间:2023-12-02 17:08:46 26 4
gpt4 key购买 nike

将数据保存到数据库时,我真的很想知道它是否已保存。但是我的 spring 应用程序似乎没有抛出错误/异常。

所以我所做的是在保存操作 myRepository.save(entity) 之前在我的应用程序中设置一个断点。当它在断点处停止时,我停止我的数据库服务,然后继续保存。

我没有异常(exception),save() 返回的我保存的实体看起来很好。但是数据库中没有保存任何内容。我什至可以执行 myRepository.findOne(id) 它会找到实体。我怎么知道它真的被保存了?

如果数据库在我的 @Transactional 方法之前发生故障,那么我会收到错误消息,但不会在方法执行到一半时停止。

最佳答案

解决方案是将我的数据库调用 myRepository.save(entity) 包装在服务类中或用 @Transactional 注释的单独方法中。

这样,当调用具有 @Transactional 的方法时,我将抛出异常。由于提交是在调用方法之后完成的。谢谢Maria Sekar的见解。在 Controller 上有 @Transactional 注释之前,它给了我一个错误,但我没有机会用它做任何事情。

所以解决方案,简化

在 Controller 类中

@RequestMapping(value = "/notification", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public Notification saveNotification(@RequestBody Notification notification) {
Notification savedNotification = null;
try {
myService.save(notification);
} catch (SQLServerException e) {
throw new CouldNotSaveNotification(e);
}
return savedNotification;
}

在服务类中

@Transactional
public save(Notification notification) {
myRepo.save(notification);
}

关于hibernate - Spring Data Repository Save - 如何知道数据是否真的保存了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50364779/

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