我正在使用spring数据mongoDB,并且在使用将组合ID返回为null的匹配查询时遇到了一个问题,但是在使用Query类时,它可以正常工作,但是我需要匹配查询,因为我正在使用Aggregation.newAggregation函数
匹配查询:
data class X(val a: Int, val b: Int, val c: Int)
data class Y(val a: Int, val b: Int)
val lista = listOf( X(1,2,3), X(2,3,1) )
val listb = lista.map { Y(it.a, it.b) }
println(listb) // -> gives [Y(a=1, b=2), Y(a=2, b=3)]
演示类:
TypedAggregation<UserAction> aggregation = Aggregation.newAggregation(Demo.class,
match(Criteria.where("id.productId").is(String.valueOf(4))));
List<Demo> mappedResults = mongoTemplate.aggregate(aggregation,Demo.class).getMappedResults();
@Document
public class Demo implements Persistable {
@Id
private DemoId id;
/**
* @return value of id
*/
public DemoId getId() {
return id;
}
@Override
public boolean isNew() {
return false;
}
/**
* @param id
*/
public void setId(DemoId id) {
this.id = id;
}
}
mongo文档样本
public class DemoId{
private Long pId;
private Long productId;
/**
* @return value of pId
*/
public Long getPId() {
return pId;
}
/**
* @param pId
*/
public void setPId(Long pId) {
this.pId= pId;
}
/**
* @return value of productId
*/
public Long getProductId() {
return productId;
}
/**
* @param productId
*/
public void setProductId(Long productId) {
this.productId = productId;
}
}
so id返回null为什么会发生这种情况,以及如何解决此问题?????