#java #mongodb #spring-boot #gradle
#java #mongodb #spring-boot #gradle
Вопрос:
Я хочу подключить mongodb к spring project. Но я столкнулся с исключением NullPointerException. Как я могу использовать save() в интерфейсе MongoRepository? Должен ли я создать конкретный класс и переопределить его?
об интерфейсе MongoRepository: https://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/repository/MongoRepository.html
Я мало что знаю о Java, Spring, DI (внедрение зависимостей).😭
[Test.java]
@SpringBootTest
class PatientsServiceTest {
private PatientsService patientsService = new PatientsService();
@Test
void save() {
Patients patient = new Patients();
~~~ object patient initialize ~~~
patientsService.save(patient);
}
}
[PatientsService.java]
@Service
public class PatientsService {
@Autowired
public PatientsRepository patientsRepository; // <- Null exists
public void save(Patients patients){
~~~ additional codes ~~
patientsRepository.save(patients);
}
}
[PatientsRepository.java]
@Repository
public interface PatientsRepository extends MongoRepository<Patients, String> {
public Patients findBySSN(String SSN);
}
Комментарии:
1. Является ли строка 42 класса PatientsServiceTest той, которая вызывает
patientsService.save(patient);
?2. Что произойдет, если вы автоматически подключите свой PatientsService в своем тесте вместо того, чтобы создавать экземпляр самостоятельно?
3. Вы должны автоматически подключить private PatientsService patientsService = new PatientsService(); вот так @Автоматически подключенный private PatientsService patientsService;
4. Можете ли вы также опубликовать свой класс entity? Есть ли у него первичный ключ? Кроме того, можете ли вы дважды проверить свойства подключения к вашей БД?
5. @VishalPawar Это работает! спасибо