相关疑难解决方法(0)

具有任意AND子句的动态spring数据jpa存储库查询

我正在使用Spring data jpa repositories,要求提供不同字段的搜索功能.搜索之前输入的字段是optional.I有5场说EmployeeNumber,Name,Married,ProfessionDateOfBirth.
这里我只需要用户查询给定的值,其他字段应该被忽略.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...??

使用可选字段实现搜索选项的最佳方法是什么?

java spring querydsl spring-data spring-data-jpa

42
推荐指数
3
解决办法
5万
查看次数

如何使用 JPA @Query 调用 SQL dateAdd 方法

我必须搜索超过 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吗?

提前致谢。

sql dateadd spring-data-jpa jpa-2.1

1
推荐指数
1
解决办法
2556
查看次数

标签 统计

spring-data-jpa ×2

dateadd ×1

java ×1

jpa-2.1 ×1

querydsl ×1

spring ×1

spring-data ×1

sql ×1