【发布时间】:2018-11-17 12:06:12
【问题描述】:
我正在做一个自定义查询来检查给定的数据是否存在于 mongodb 数据库中。以下是我完成的代码。
package com.royangular.royAngularProject.repositories;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;
import com.royangular.royAngularProject.models.ContactUs;
@Repository
public interface ContactUsRepository extends MongoRepository<ContactUs, String> {
@Query("{'name' : ?0}")//, contactEmail : ?0, phoneNumber : ?0}")
public List<ContactUs> findBynameAndcontactEmailAndphoneNumber(String name);//, String contactEmail, String phoneNumber);
}
调用 repo 的类:
package com.royangular.royAngularProject.controllersContact;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.ResponseEntity;
import com.royangular.royAngularProject.models.ContactUs;
import com.royangular.royAngularProject.repositories.ContactUsRepository;
public class QueryDBCheck {
@Autowired
ContactUsRepository contactUsRepository;
@Autowired
MongoTemplate mongoTemplate ;
public boolean queryDB (ContactUs contactus)
{
List<ContactUs> colleagues = new ArrayList<ContactUs>();
if (contactUsRepository.findBynameAndcontactEmailAndphoneNumber(contactus.getName())==null)
{
return true;
}
else
{
colleagues = contactUsRepository.findBynameAndcontactEmailAndphoneNumber("dasdsad");//, contactus.getContactEmail(), contactus.getPhoneNumber());
}
if (colleagues.size()==0)
{
return true;
}
return false;
}
}
我在contactUsRepository.findBynameAndcontactEmailAndphoneNumber(contactus.getName()) 获得了一个空指针。请问我知道问题出在哪里以及我需要如何解决它。它阻止代码继续。抱歉,我是 mongodb 的新手。您能否还包括为什么要这样做以及如何进行,以便社区中的每个人都可以学习。
【问题讨论】:
-
您确定
contacts.getName()返回non-null值吗? -
@ETO 是的,我确定它不为空,我什至打印在之前声明不为空的日志上。
标签: java mongodb spring-boot