查询注释不适用于max(id)

时间:2017-02-26 06:56:24

标签: spring-data spring-data-jpa jpql jhipster

我有一个域对象GenJournal,它有一个" id"会员(长)自动生成。我还有一个JPA存储库,我已经添加了......

@Query("select coalesce(max(u.id), 0) from GenJournal u")
Long getMaxId();

方法getMaxId()在添加coalesce之前返回零或null。我的数据库中有两行,ID为1和2.任何人都可以帮我确定为什么这不起作用?

我试图获取最新或最大ID,以便我可以使用find方法返回我服务类中最新的GenJournal对象。

我很难过,真的需要一些选择或策略来确定为什么这不起作用。

2 个答案:

答案 0 :(得分:1)

您可以使用" Native Query"通过将nativeQuery = true param传递给@Query注释,如此

@Query("从Gen_Journal_Table中选择合并(max(u.id),0)u",NativeQuery = true) Long getMaxId();

答案 1 :(得分:0)

我的问题是双重的。首先,我在没有使用" coalesce"的情况下变为空。这让我觉得这没有用。当我采用" coalesce"我没有意识到我的表没有记录,并且返回零(0)。我在生产配置文件中的表确实有两个记录,我期望id为2。

我手动检查错误的数据库并设置不正确的期望。