java - 如何使用 Spring JPA 检索计算值
问题描述
这是我目前的实现
@Query(value = "SELECT NEW, ID, NAME, MASS_OUTPUT, TEMPERATURE, WATER_OUTPUT, CREATED_DATE, CREATED_USER, MODIFIED_DATE, MODIFIED_USER, PRESSURE_PROFILE_ID, PRESSURE_PROFILE_PRESET_ID,RECIPE_ID,USER_ID FROM \r\n" +
"(\r\n" +
"(SELECT 1 as Rank, true as NEW, ID, NAME, MASS_OUTPUT, TEMPERATURE, WATER_OUTPUT, CREATED_DATE, CREATED_USER, MODIFIED_DATE, MODIFIED_USER, PRESSURE_PROFILE_ID, PRESSURE_PROFILE_PRESET_ID \r\n" +
"FROM RECIPE \r\n" +
"where CREATED_DATE > NOW() - INTERVAL 1 DAY)\r\n" +
"UNION ALL\r\n" +
"(SELECT 2 as Rank, false as NEW, ID, NAME, MASS_OUTPUT, TEMPERATURE, WATER_OUTPUT, CREATED_DATE, CREATED_USER, MODIFIED_DATE, MODIFIED_USER, PRESSURE_PROFILE_ID, PRESSURE_PROFILE_PRESET_ID \r\n" +
"FROM RECIPE \r\n" +
"where CREATED_DATE < NOW() - INTERVAL 1 DAY)\r\n" +
") \r\n" +
"AS A JOIN USER_RECIPE AS B ON ID=RECIPE_ID where B.USER_ID= ?1",
countQuery = "SELECT count(*) FROM USER_RECIPE WHERE USER_ID = ?1",
nativeQuery = true)
List<UserRecipe> getAllUserRecipesWithPagination(String userId, Pageable sortedByField);
忽略长查询。通过这个查询,我试图首先检索最新的元素(小于 1 天的记录)
“新”不是 UserRecipe 实体中的属性。我将使用 NEW 来识别最新的元素。
我希望用户 @Transient 这样做,但找不到正确的方法来做到这一点。帮助将不胜感激。
解决方案
推荐阅读
- c# - 接触地面 Unity 3D 时更换游戏对象
- java - 文件 IOstream 是否可以在每个循环中初始化?
- api - GraphQL 对我的 node express 后端来说是否矫枉过正
- firebase-authentication - 如何为多个项目使用具有身份验证的firebase模拟器?
- azure - azure API 管理中的多个环境
- android - Fluttter 搜索委托占满宽度
- regex - 使用正则表达式在 Notepad++ 中重复文本
- python - 更新到 PyCharm 2021.2 后,得到预期的语句,发现 Py:DEDENT
- python - 互相调用 2 个类的类函数
- r - 通过具有不同长度的 row.names 合并许多 R 数据帧