Vla*_*mir 4 java jpa jpql java-ee
基本上,它类似于查找句子中是否存在某些单词。有实体帖子:
public class Post implements Serializable {
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "post_id", unique = true, nullable = false)
private Integer id;
@Column(name = "post_title", length=300, unique = false, nullable = false)
private String title;
@Column(name = "post_date", unique = false, nullable = false)
private Date date;
...}
Run Code Online (Sandbox Code Playgroud)
我正在尝试实现JPQL查询,该查询将搜索Post实体实例,这些实体实例byTitle在其title字段中具有某些单词/字符串(作为参数传递),以及两个以上Date类型的参数,分别代表日期范围- startDate和endDate。
我心里有这样的事情:
SELECT p FROM Post p WHERE :byTitle IN (set of strings created from parsing p.title field) AND p.date>=:startDate AND p.date<=endDate
如何实现这种JPQL查询?还是应该使用JPA Criteria API?
编辑:
就像someString.contains(someSubstring)Java中有函数一样,JPQL中有类似的东西吗?还是Criteria API?为了进行比较,它不必区分大小写。
我已经使用JPQL LIKE和模式表达式配对实现了它:
SELECT p FROM Post p WHERE
p.title LIKE :pattern AND
p.date>=:startDate AND
p.date<=:endDate
Run Code Online (Sandbox Code Playgroud)
在哪里pattern = "%" + someString + "%"。