我有一个域对象GenJournal,它有一个" id"会员(长)自动生成。我还有一个JPA存储库,我已经添加了......
@Query("select coalesce(max(u.id), 0) from GenJournal u")
Long getMaxId();
方法getMaxId()在添加coalesce之前返回零或null。我的数据库中有两行,ID为1和2.任何人都可以帮我确定为什么这不起作用?
我试图获取最新或最大ID,以便我可以使用find方法返回我服务类中最新的GenJournal对象。
我很难过,真的需要一些选择或策略来确定为什么这不起作用。
答案 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。
我手动检查错误的数据库并设置不正确的期望。