当两个相似的存储库时如何消除代码重复?
How to rid of code duplication when two similar repositories?
根据给定的类型,我想从一个或另一个报告中检索数据。这是我想出的:
if (type.equals("first")) {
codes = firstRepository.findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
} else {
codes = secondRepository.findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
}
现在我正在寻找一个优雅的解决方案来删除代码重复。
是这样的吗?
codes = (type.equals("first") ? firstRepository : secondRepository).findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
我宁愿将两个存储库中的方法添加到 return 所有代码作为列表:
public interface FirstRepository extends JpaRepository<Long, First>
{
List<First> findAllByCode();
}
public interface SecondRepository extends JpaRepository<Long, Second>
{
List<Second> findAllByCode();
}
根据给定的类型,我想从一个或另一个报告中检索数据。这是我想出的:
if (type.equals("first")) {
codes = firstRepository.findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
} else {
codes = secondRepository.findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
}
现在我正在寻找一个优雅的解决方案来删除代码重复。
是这样的吗?
codes = (type.equals("first") ? firstRepository : secondRepository).findAll().stream()
.map(numbers::getCode)
.collect(Collectors.toList());
我宁愿将两个存储库中的方法添加到 return 所有代码作为列表:
public interface FirstRepository extends JpaRepository<Long, First>
{
List<First> findAllByCode();
}
public interface SecondRepository extends JpaRepository<Long, Second>
{
List<Second> findAllByCode();
}