我有
PartnerNotification quest = partnerNotificationRepository.findById(login.getAccount().getAccountId());
但不起作用我得到这个错误
Type mismatch: cannot convert from Optional<PartnerNotification> to PartnerNotification
我真的不知道为什么会这样,有人知道运行的是什么,如何解决?
因为我不知道这里出了什么问题,所以我尝试自己创建一个查询,但是仍然在语法中缺少一些内容:
/**
* @param partnerId .
* @return Notification
*/
@Query("SELECT FROM PartnerNotification WHERE partner_id = :partnerId")
PartnerNotification findNotificationByPartnerId(@Param("partnerId") Integer partnerId);
任何帮助表示赞赏,这将是有益的!
最佳答案
我认为您应该实施它。
例:
仓库:
@Query("SELECT FROM PartnerNotification WHERE partner_id = :partnerId")
Optional<PartnerNotification> findNotificationByPartnerId(@Param("partnerId") Integer partnerId);
服务:
PartnerNotification quest = partnerNotificationRepository.findById(login.getAccount().getAccountId())
.orElseThrow(RuntimeException::new);
注意:
当找不到accountId时,您可以使用其他解决方案和另一个Exception。
或者您可以使用if else语句(例如:isPresent())