Я использую Spring boot 2 и Hibernate 5 и пытаюсь выбрать данные из объединения двух таблиц. Но возвращенный результат повторяет первую строку данных.
@Autowired
private CaseDTRsServiceImpl caseDTRsService;
@Test
public void UnitTest_findCaseByStage() {
Iterable <CaseDTRs> caseDTRsIterable = caseDTRsService.findCaseByStage("Eligibility");
List <CaseDTRs> CaseDTRsList = StreamSupport
.stream(caseDTRsIterable.spliterator(), false)
.collect(Collectors.toList());
for (int i=0; i<CaseDTRsList.size(); ++i) {
System.out.printf("%d-Case Number: %d ", i, CaseDTRsList.get(i).getCaseNum());
System.out.printf(" TypeCd: %s, getDocNumber:%s\n", CaseDTRsList.get(i).getTypeCd(), CaseDTRsList.get(i).getDocNumber());
}
}
@Service
public class CaseDTRsServiceImpl implements CaseDTRsService {
@Autowired
private CaseDTRsRepository caseDTRsRepository;
public Iterable<CaseDTRs> findAll() {
return caseDTRsRepository.findAll();
}
public Iterable<CaseDTRs> findCaseByStage(String stage) {
return caseDTRsRepository.findCaseByStage(stage);
//return caseDTRsRepository.findCaseByStage();
}
}
@Repository
public interface CaseDTRsRepository extends JpaRepository<CaseDTRs, String> {
@Query(value = "SELECT case_num, TYPE_CD, doc.x_doc_id_num " +
"FROM siebel.s_case ca, siebel.s_evt_act doc " +
"where ca.row_id=doc.x_case_id and case_num='10009999' ", nativeQuery = true)
List<CaseDTRs> findCaseByStage(String stage);
}
UnitTest_CaseDTRs> Размер: 75
UnitTest_CaseDTRs> Номер дела: 10009999 0-номер дела: 10009999 TypeCd: Общественный корпус, getDocNumber: 070123
1-Case Number: 10009999 TypeCd: Housing, getDocNumber: 070123
2-номер корпуса: 10009999 TypeCd: Housing, getDocNumber: 070123
....
74-CaseНомер: 10009999 TypeCd: Корпус, getDocNumber: 070123