我正在第一次尝试服务/存储库方法,但遇到了一个问题。本质上,我想在我的服务中做的是保留我的实体,然后在相同的服务方法中使用它的 ID。
最初我打算使用 @GenerateValue 和 Sequences 但放弃并决定手动刷新实体并获取 ID ,我认为这会更容易。
我的存储库是一个使用 Spring Data 的接口,因此它支持手动刷新。据我了解,它也用@Transactional 进行注释。我的Service方法也用@Transactional注释。
我发现实体仅在 Service 方法返回时持久存在,即使我在保存实体(或使用 saveAndFlush)后立即刷新也是如此。我认为刷新会强制数据库更改?
当您调用 save 时,Spring-data-jpa 返回“未来”实体(即带有 id),因此:
Foo foo = new Foo();
foo = this.fooRepository.save(foo); // also work on Collections
this.fooRepository.flush();
// use foo.getId();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)