JPA 存储库布尔查询 - return 空指针异常
JPA repository Boolean Query - return null pointer exception
我有Java个springBoot项目
使用包含布尔自定义查询的存储库。
但是系统 运行 除了 return “false”之外的空指针异常。
这是查询:
@Query(value = "select * from customers_vs_coupons where customer_id =? and coupon_id = ?", nativeQuery = true)
Boolean existsPurchesedCoupon(int customerId, int couponId);
我调用了方法:
if (customerRepository.customerPurchesedCoupon(customerId, coupon.getId())) {
throw new PurchaseCouponException("can buy only once.");
这是错误:
[Request processing failed; nested exception is java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because the return value of "com.chana.repositories.CustomerRepository.customerPurchesedCoupon(int, int)" is null] with root cause ```
您的查询
select * from customers_vs_coupons where customer_id =? and coupon_id = ?
旨在 return 映射到 table customer_vs_coupons 的任何实体(从现在开始称为 CustomersVsCoupons),而不是布尔值。
如果您想在特定客户的优惠券已经受到影响时抛出异常,您应该将方法的签名转换为:
- Return 一个 CustomersVsCoupons,如果您的查询没有 return null
,则抛出异常
- Return 一个 Optional
,如果您的查询 return 一个非空 Optional 则抛出异常
我有Java个springBoot项目 使用包含布尔自定义查询的存储库。 但是系统 运行 除了 return “false”之外的空指针异常。 这是查询:
@Query(value = "select * from customers_vs_coupons where customer_id =? and coupon_id = ?", nativeQuery = true)
Boolean existsPurchesedCoupon(int customerId, int couponId);
我调用了方法:
if (customerRepository.customerPurchesedCoupon(customerId, coupon.getId())) {
throw new PurchaseCouponException("can buy only once.");
这是错误:
[Request processing failed; nested exception is java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because the return value of "com.chana.repositories.CustomerRepository.customerPurchesedCoupon(int, int)" is null] with root cause ```
您的查询
select * from customers_vs_coupons where customer_id =? and coupon_id = ?
旨在 return 映射到 table customer_vs_coupons 的任何实体(从现在开始称为 CustomersVsCoupons),而不是布尔值。
如果您想在特定客户的优惠券已经受到影响时抛出异常,您应该将方法的签名转换为:
- Return 一个 CustomersVsCoupons,如果您的查询没有 return null ,则抛出异常
- Return 一个 Optional
,如果您的查询 return 一个非空 Optional 则抛出异常