我有
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 时,您可以使用另一个解决方案和另一个异常。 或者您可以使用 if else 语句(例如: isPresent() )
关于java - 如何在 hibernate 中编写正确的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56687543/