1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| package com.example.demo;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.List;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Component
public static class InitRunner implements ApplicationRunner {
private final UserRepository userRepository;
private final ProjectRepository projectRepository;
public InitRunner(UserRepository userRepository, ProjectRepository projectRepository) {
this.userRepository = userRepository;
this.projectRepository = projectRepository;
}
@Override
public void run(ApplicationArguments args) {
ProjectEntity projectEntityA = new ProjectEntity();
projectEntityA.setId("a");
projectEntityA.setName("A");
projectRepository.save(projectEntityA);
ProjectEntity projectEntityB = new ProjectEntity();
projectEntityB.setId("b");
projectEntityB.setName("B");
projectRepository.save(projectEntityB);
UserEntity userEntityA = new UserEntity();
userEntityA.setId("a");
userEntityA.setFirstName("A");
userEntityA.setProjects(Collections.singletonList(projectEntityA));
userRepository.save(userEntityA);
UserEntity userEntityB = new UserEntity();
userEntityB.setId("b");
userEntityB.setFirstName("B");
userEntityB.setProjects(Collections.singletonList(projectEntityB));
userRepository.save(userEntityB);
UserEntity userEntityC = new UserEntity();
userEntityC.setId("c");
userEntityC.setFirstName("c");
userEntityC.setProjects(Collections.singletonList(projectEntityB));
userRepository.save(userEntityC);
List<UserProjection> all = userRepository.findAllByProjects_IdNotIn(Collections.singletonList("b"));
all.forEach(userProjection -> System.out.println(userProjection.getFirstName()));
}
}
} |