I’m newbie with Java. I’m create an API with Webflux and ReactiveMongoRepository. I try to save my data from another API.
My repository:
@Repository public interface AccountApiTrackingRepo extends ReactiveMongoRepository<AccountApiTracking, String> { }
My service implements:
@Override public void findByIdAccountsApiTrack(User user, String accountId){ AccountApiTracking accountApiTracking = new AccountApiTracking(); accountApiTracking.setUser(user); accountApiTracking.setAccountId(accountId); accountApiTracking.setAction("Find account by Id"); System.out.println(accountApiTracking); accountApiTrackingRepo.save(accountApiTracking); }
My services:
@Service public interface AccountApiTrackingService { public void createAccountsApiTrack(User user, AccountDto accountDto); public void findByIdAccountsApiTrack(User user, String accountId); Flux<AccountApiTrackingDto> findAll(); }
My model:
@Document @Data @NoArgsConstructor @AllArgsConstructor public class AccountApiTracking implements AutoMapping<AccountApiTrackingDto> { @Id private String id; private User user; private String action; private AccountDto payload; private String accountId; @Override public String toString() { return String.valueOf(action); } }
After function findByIdAccountsApiTrack() run I can’t find any document created in my database. I can see my variable accountApiTracking have data. But accountApiTrackingRepo.save doesn’t work. What I’m missing?
Advertisement
Answer
In Reactive programming should subscribe to any reactive instruction.
you should
return accountApiTrackingRepo.save(accountApiTracking);
to till your usage for example in the controller.
or for your test case, you can use “.subscribe()” after your method call.