Java 如何在hibernate中正确编写查询?
我有 但不起作用,我得到这个错误Java 如何在hibernate中正确编写查询?,java,hibernate,nhibernate-hql,Java,Hibernate,Nhibernate Hql,我有 但不起作用,我得到这个错误 PartnerNotification quest = partnerNotificationRepository.findById(login.getAccount().getAccountId()); 感谢您的帮助,这将是非常有帮助的 我认为你应该实施它 例如: 存储库: /** * @param partnerId . * @return Notification */ @Query("SELECT FROM PartnerNotific
PartnerNotification quest = partnerNotificationRepository.findById(login.getAccount().getAccountId());
感谢您的帮助,这将是非常有帮助的 我认为你应该实施它 例如: 存储库:
/**
* @param partnerId .
* @return Notification
*/
@Query("SELECT FROM PartnerNotification WHERE partner_id = :partnerId")
PartnerNotification findNotificationByPartnerId(@Param("partnerId") Integer partnerId);
注:
当找不到accountId时,可以使用另一个解决方案和另一个异常。
或者您可以使用if-else语句,例如:isPresent您是否将返回类型更改为可选?它可能暗示您,结果可能确实是一个存在的PartnerNotification,也可能不是,因此是可选的。我需要返回类型为PartnerNotification,而不是可选的,除非您使用的是古老的代码库,否则返回可选的完全可以;在某些时候,您必须检查查询是否返回了某些内容,因此quest.isPresent将类似于常见的null!=探索在任何情况下,您的查询都是正常的,您需要研究如何更改返回类型,但查询是完全正常的,没有问题。sintax查询是错误的,至少我认为是这样,我会尝试让您知道,但不起作用,但如果您知道语法查询有什么问题,请告诉我,请大家想一想:你们有实体类吗?我认为您有一个PartnerNotification,例如:@Queryvalue=从用户u中选择u,因此:@QuerySELECT p FROM PartnerNotification p其中p.partner\u id=:partnerId,但我不知道您的partner\u id变量名是什么。注意:如果需要,可以使用方法查询。e、 q:可选findByColumnNameString变量;是的,没错,我也做过类似这样的查询://***param partnerId.//*返回通知//*//@QuerySELECT p FROM PartnerNotification p其中partner_id=:partnerId//PartnerNotificationfindNotificationByPartnerId@ParampartnerId整数partnerId;
/**
* @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);