【问题标题】:Similar SQL queries in different methods不同方法中的类似 SQL 查询
【发布时间】:2015-09-21 10:40:41
【问题描述】:

有两种类似的方法:

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

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

我想实现一个私有方法来接收来自这两者的查询并处理“相同的逻辑”。这是好方法吗?

【问题讨论】:

    标签: java sql jpa


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多