我正在开发Spring + Spring Data Mongo
示例。在此示例中,我希望将文档放在Region is NULL
。为此,我开发了Repository方法
List<Customer> findByRegionNull();
数据库查询显示大写 NULL 而不是 Null ,现在 db.customers.find({&#34; Region&#34;:&#34 ; null&#34;}); 查询执行我看不到任何结果。 我们如何编写存储库查询以获取NULL?
db.customers.find({ "Region" : "NULL" });
{
"_id" : ObjectId("51ba0970ae4ad8cc43bb95e3"),
"CustomerID" : "ALFKI",
"CompanyName" : "Alfreds Futterkiste",
"ContactName" : "Maria Anders",
"ContactTitle" : "Sales Representative",
"Address" : "Obere Str. 57",
"City" : "Berlin",
"Region" : "NULL",
"PostalCode" : 12209,
"Country" : "Germany",
"Phone" : "030-0074321",
"Fax" : "030-0076545"
}
{
"_id" : ObjectId("51ba0970ae4ad8cc43bb95e4"),
"CustomerID" : "ANATR",
"CompanyName" : "Ana Trujillo Emparedados y helados",
"ContactName" : "Ana Trujillo",
"ContactTitle" : "Owner",
"Address" : "Avda. de la Constitución 2222",
"City" : "México D.F.",
"Region" : "NULL",
"PostalCode" : 5021,
"Country" : "Mexico",
"Phone" : "(5) 555-4729",
"Fax" : "(5) 555-3745"
}
我开发的代码: CustomerRepository.java
public interface CustomerRepository extends CrudRepository<Customer, String>{
List<Customer> findByRegionNull();
}
我的测试用例不会给出结果吗?
@Test
public void testRegionNull(){
List<Customer> customers =cService.findByRegionNull();
LOGGER.debug("SIZE : "+customers.size());
}
Customer.java
@Document(collection="customers")
public class Customer {
@Id
private ObjectId id;
@Field("CustomerID")
private String customerId;
@Field("CompanyName")
private String companyName;
@Field("ContactName")
private String contactName;
@Field("ContactTitle")
private String contactTitle;
@Field("Address")
private String address;
@Field("City")
private String city;
@Field("Region")
private String region;
@Field("PostalCode")
private String postalCode;
@Field("Country")
private String country;
@Field("Phone")
private String phone;
@Field("Fax")
private String fax;
// setters and getters
}
答案 0 :(得分:1)
只需要使用@Query
注释方式。请refer 6.3.2
:
http://docs.spring.io/spring-data/data-document/docs/current/reference/html/
使用此:
public interface CustomerRepository extends CrudRepository<Customer, String>{
@Query("{ 'Region' : 'NULL' }")
List<Customer> findByRegionNull();
}