使用@Param作为查询方法参数,或者在Java8+上使用javac标志-parameters

使用@Param作为查询方法参数,或者在Java8+上使用javac标志-parameters,java,hibernate,Java,Hibernate,我在本地系统上运行以下代码: @Query(value = "select l from TnncSetlmtSvcGrpStagingEntity l where l.runDate >=:runDate") List<TnncSetlmtSvcGrpStagingEntity> findAllByRunDateGT(Date runDate); 在我的本地系统上,我也在使用Java8 谁能帮我解决这个问题。非常感谢您的帮助。您是否尝试使用命名参数 6.

我在本地系统上运行以下代码:

@Query(value = "select l from TnncSetlmtSvcGrpStagingEntity l where l.runDate >=:runDate")
List<TnncSetlmtSvcGrpStagingEntity> findAllByRunDateGT(Date runDate);
在我的本地系统上,我也在使用Java8


谁能帮我解决这个问题。非常感谢您的帮助。

您是否尝试使用命名参数

6.3.6。使用命名参数 默认情况下,SpringDataJPA使用基于位置的参数绑定,如前面所有示例中所述。这使得查询方法在重构参数位置时有点容易出错。要解决此问题,可以使用@Param annotation为方法参数指定一个具体名称,并在查询中绑定该名称

有关详细信息,请参阅

因此,这应该是可行的:

@Query(value = "select l from TnncSetlmtSvcGrpStagingEntity l where l.runDate >=:runDate")
List<TnncSetlmtSvcGrpStagingEntity> findAllByRunDateGT(@Param("runDate") Date runDate);

您是否尝试使用命名参数

6.3.6。使用命名参数 默认情况下,SpringDataJPA使用基于位置的参数绑定,如前面所有示例中所述。这使得查询方法在重构参数位置时有点容易出错。要解决此问题,可以使用@Param annotation为方法参数指定一个具体名称,并在查询中绑定该名称

有关详细信息,请参阅

因此,这应该是可行的:

@Query(value = "select l from TnncSetlmtSvcGrpStagingEntity l where l.runDate >=:runDate")
List<TnncSetlmtSvcGrpStagingEntity> findAllByRunDateGT(@Param("runDate") Date runDate);

为什么它在我的本地环境中运行良好而在其他环境中运行不正常?@IshanTiwary您能否分享您在其他环境中遇到的异常情况?为什么它在我的本地环境中运行良好而在其他环境中运行不正常?@IshanTiwary您能否分享您在其他环境中遇到的异常情况?
@Query(value = "select l from TnncSetlmtSvcGrpStagingEntity l where l.runDate >=:runDate")
List<TnncSetlmtSvcGrpStagingEntity> findAllByRunDateGT(@Param("runDate") Date runDate);