私はサービス/リポジトリのアプローチに最初の亀裂を入れており、問題に直面しています。基本的に、サービスで実行したいのは、エンティティを永続化し、同じサービスメソッドでそのIDを使用することです。
もともとは@GeneratedValueとSequencesを使用するつもりでしたが、あきらめてエンティティを手動でフラッシュし、IDを取得することに決めました。これは簡単だと思いました。
MyRepositoryはSpringDataを使用するインターフェースであるため、手動フラッシュをサポートしています。私が理解しているように、@Transactionalという注釈も付けられています。MyServiceメソッドにも@Transactionalという注釈が付けられています。
私が見つけたのは、エンティティを保存した直後にフラッシュした場合でも(または、saveAndFlushを使用した場合でも)、Serviceメソッドが戻ったときにのみエンティティが保持されることです。フラッシュするとDBの変更が強制されると思いましたか?