java.lang.IllegalArgumentException-属性不能为null

时间:2018-11-24 12:47:06

标签: mongodb spring-boot spring-data-mongodb illegalargumentexception json-query

我正在使用SomeArraySpringBoot1.5.4。现在,我使用spring-data-mongodb注解使用Json Query从文档中获取数据。 我有以下实现: 在@Query中:

PlayAndEarnProgramRepository

Play&Earn模型:

@Query(value="{'_id' : ?0 , 'vouchers.is_deleted' : ?1, 'vouchers.is_expired' : ?2}",fields="{'vouchers' : 1}")
public List<VouchersPAndE> getActiveVoucherByplayAndEarnId(String id,Boolean isDeleted,Boolean isExpired);

和repoMethod的调用:

@Id
@Field(ID)
private String id;

@Field(PLAYANDEARNID)
private String playAndEarnId = UUID.randomUUID().toString();

@Field(MERCHANTID)
private String merchantId;

@Field(VOUCHERS)
private List<VouchersPAndE> vouchers;

我想获取有效的凭单。但是出现以下异常:

playAndEarnProgramRepo.getActiveVoucherByplayAndEarnId(program.getId(),false,false);

有人可以告诉我我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

您使用了错误的返回类型,因为错误表明没有与结果绑定的id字段 您需要将结果绑定到您的Play&Earn模型中:

db.PlayAndEarn.find({"_id" : ID , "vouchers.is_deleted" : false, "vouchers.is_expired" : FALSE},{"vouchers" : 1})

它将显示数据格式。