Validação de referência do banco de dados
Nesta página
O plug-in MongoDB para IntelliJ valida as referências de banco de dados de dados em seu driver Java ou código Spring Criteria para garantir que o banco de banco de dados, coleção ou campo especificado exista no servidor.
Se você fizer referência a um nome de campo, coleção ou banco de dados de dados que não esteja em sua fonte de dados, o plugin -in mostrará um aviso indicando que a referência não existe.
Para resolver o aviso:
Verifique se você está conectado à fonte de dados correta na barra de ferramentas Conexões.
Verifique se você está referenciando o banco de banco de dados e a coleção corretos em seu código.
Verifique se seu banco de dados de dados ou collection contém o campo ao qual você está tentando fazer referência.
Nome de campo inexistente
Se você fizer referência a um nome de campo que não existe na coleção, o plug-in IntelliJ emitirá o seguinte aviso:
Field <fieldName> does not exist in collection <collectionName>.
Nome da coleção inexistente
Se você fizer referência a um nome de coleção que não existe no banco de banco de dados, o plug-in IntelliJ emitirá o seguinte aviso:
Cannot resolve <collectionName> collection in <dbName> database in the connected data source.
Non-existent Database Name
Se você fizer referência a um banco de dados de dados que não existe na fonte de dados, o plug-in IntelliJ emitirá o seguinte aviso:
Cannot resolve <dbName> database reference in the connected data source.
Exemplo
O exemplo a seguir faz referência ao sample_mflix
banco de dados de dados , que contém dados sobre filmes e cinemas, a partir dos conjuntos de dados de amostra do Atlas .
O código de exemplo tenta chamar uma coleção restaurant_name
:
public List<Document> getHundredYearOldMovies() { return client.getDatabase("sample_mflix") .getCollection("restaurant_name") .find(Filters.eq("year", 1924)) .into(new ArrayList<>()); }
Como a coleção não existe no banco de banco de dados sample_mflix
, o plug-in IntelliJ emite um aviso de que a coleção não pode ser resolvida:
Cannot resolve "restaurant_name" collection in "sample_mflix" database in the connected data source.``
Para resolver o aviso, faça referência a uma coleção que existe no banco de banco de dados sample_mflix
:
public List<Document> getHundredYearOldMovies() { return client.getDatabase("sample_mflix") .getCollection("movies") .find(Filters.eq("year", 1924)) .into(new ArrayList<>()); }