我正在使用Spring data jpa repositories,要求提供不同字段的搜索功能.搜索之前输入的字段是optional.I有5场说EmployeeNumber,Name,Married,Profession和DateOfBirth.
这里我只需要用户查询给定的值,其他字段应该被忽略.Ex,
Input : EmployeeNumber: ,Name:St,Married: ,Professsion:IT,DateOfBirth:
Query : Select * from Employee e where Name like 'St%' and Profession like 'IT%';
Input : EmployeeNumber:10,Name: ,Married: ,Professsion:IT,DateOfBirth:
Query : Select * from Employee e where EmployeeNumber like '10%' and Profession like 'IT%';
Run Code Online (Sandbox Code Playgroud)
所以我们在这里考虑输入和查询的值.在这种情况下,春季数据是具有限制中提到的这篇文章(不可扩展,所有可能出现的问题,应书面)我使用的Querydsl,但仍存在问题,null待开发领域应该被忽略,几乎所有可能的查询需要.在这case 31 queries.如果搜索字段是6,7,8...??
使用可选字段实现搜索选项的最佳方法是什么?
我必须搜索超过 6 个月的行。我已插入时间(日期时间)作为表中的列之一。如果它是一个 sql 查询,它就像这样直接:-
select * from myTable where insertTime<=dateadd(month, -6, getDate());
Run Code Online (Sandbox Code Playgroud)
但我使用的是 JPA,所以我必须写这样的东西:-
select * from myTable where insertTime<=function('DATEADD',month, -6, function('getDate'));
Run Code Online (Sandbox Code Playgroud)
我不确定如何在上面的查询中添加月份参数。
我在上述查询中收到以下错误
创建名称为“myRepository”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.IllegalArgumentException: 查询验证失败 ....
我应该如何在上面的查询中添加月份字段?可以通过JPA吗?
提前致谢。