不同方法中的类似SQL查询

时间:2015-09-21 10:40:41

标签: java sql jpa

有两种类似的方法:

Collection<Movie> findAll(UserDetails userDetails); //find all movies rated by User
Collection<Movie> findAll(UserDetails userDetails, String s); //find all movies rated by User and containing "s" in title

所以,第二个是第一个+正则表达式。 JPQL代码分别为:

select movie........ //doesn't mater
//the same logic

select movie........ where lower(movie.title) like :s
//the same logic

所有的差异都是一行代码,但它迫使我在这两种方法中重复代码。在这种情况下,如何避免代码重复?

我想实现私有方法,它将接收来自这两个的查询并处理相同的逻辑&#34;。这是好方法吗?

1 个答案:

答案 0 :(得分:3)

保留这两种方法,然后创建另一种接收结果并处理数据的方法。

Collection<Movie> findAll(...) { // your params here
Result result = select movie........ //doesn't mater
return processData(result);
}