Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在hibernate中正确编写查询?_Java_Hibernate_Nhibernate Hql - Fatal编程技术网

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);