spring-boot - 有没有办法在 spring jpa 方法中获取 A & (B | C) ,其中表达式 B 和 C 与相同的属性连接?
问题描述
结果,我想要一个只有一个字符串参数(表达式A)的方法。但是 B 和 C 表达式具有相同的属性。这意味着“今天的日期属性为 null 或 less_or_equal”。
所以,我所拥有的是这种方法:
List<EntityObject> findByMyDateIsNullAndMyStringOrMyStringAndMyDateLessThanEqual(Date myDate, String myString);
default List<EntityObject> findByMyDateIsNullAndMyStringOrMyStringAndMyDateLessThanEqual(String myString) {
return findByMyDateIsNullAndMyStringOrMyStringAndMyDateLessThanEqual(Date.valueOf(LocalDate.now()),myString);
}
但是,当我尝试在 Maven 中安装时,由于测试,我收到此错误:
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List MyItemRepository.findByMyDateIsNullAndMyStringOrMyStringAndMyDateLessThanEqual(java.sql.Date,java.lang.String)! null
我知道另一种方法是将@Query 与自定义查询一起使用,但我更喜欢这个。可能吗?
解决方案
我的同事帮了我,所以...
首先我忘记了 findAll,因为它可能更多......
其次,我需要约会 IsLessThanEqual ...
第三,我需要 3 个参数。只有 3 个,因为已经在方法名称中使用“IsNull”定义了一个。所以,我需要 2 个字符串参数和 1 个日期参数
List<EntityObject> findAllByMyDateIsNullAndMyStringOrMyStringAndMyDateIsLessThanEqual(Date myDate, String myString1, String myString2);
然后我必须用预定义的值来调用它,日期小于或等于今天的日期
default List<EntityObject> findAllByMyDateIsNullAndMyStringOrMyStringAndMyDateIsLessThanEqual(String string) {
return findAllByMyDateIsNullAndMyStringOrMyStringAndMyDateIsLessThanEqual(Date.valueOf(LocalDate.now()),string,string);
}
推荐阅读
- python-3.x - 如何解释 tf.keras.Model.predict() 输出?
- javascript - 输入 4 个字母和 4 个数字没有特殊字符只限制但允许功能键?
- sql - 对于两个日期之间的每个季度,在 SQL SERVER 中逐季度添加行
- python - 如何使用 wsadmin/jython 脚本在 websphere 应用程序服务器中仅列出单元范围的数据源?
- python - Webbrowser.Open 打开两个选项卡
- java - 使用 volley multipart android 上传多张图片
- r - 当我在 R 中运行这段代码时,根本没有输出,即使在全局环境区域中也是如此。为什么会这样?
- android - 如何使用 exoplayer 播放本地文件?
- arrays - C 中全局整数声明的数组问题
- javascript - 如何将嵌套的对象数组推送到数组?