gpt4 book ai didi

java - Spring Boot - 自定义查询上的空指针

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:03 25 4
gpt4 key购买 nike

我正在执行一个自定义查询来检查给定的数据是否存在于 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);

}

调用存储库的类:

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()) 处得到一个空指针。我可以知道问题是什么以及我需要如何解决它。它阻止代码继续运行。抱歉,我是 Spring Boot 的 mongodb 新手。您是否还可以说明为什么要做以及如何做,以便社区中的每个人都可以了解。

最佳答案

  1. 从您的方法中删除 Query 注释。在这种特殊情况下您不需要它。
  2. 在命名 JPA 查询时遵循驼峰命名法。 (注意方法名中参数名的首字母要大写)。

    @Repository
    public interface ContactUsRepository extends MongoRepository<ContactUs, String> {

    public List<ContactUs> findByNameAndContactEmailAndPhoneNumber(String name, String contactEmail, String phoneNumber);

    }

关于java - Spring Boot - 自定义查询上的空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53351080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com