Thanks fo your answer.
I still have a problem.
This is my entity class:
public class ResidentDto {
private Integer residentId;
private String firstName;
private String lastName;
private String email;
private Long avgTime;
public ResidentDto() {}
public ResidentDto(String firstName, String lastName, String email) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email; } getters and setters
This is property:
resident.avg.diff.time=SELECT RESIDENT_ID, FIRSTNAME, LASTNAME, EMAIL, AVG(DATEDIFF('DAY', ARRIVAL_TIME, DEPARTURE_TIME,)) FROM RESIDENT GROUP BY RESIDENT_ID, FIRSTNAME, LASTNAME, EMAIL
My method:
public class ResidentDtoDaoJdbc implements ResidentDaoDto {
@Value("${resident.avg.diff.time}")
private String findAllAvgDateSQL;
private final NamedParameterJdbcTemplate namedParameterJdbcTemplate;
private RowMapper rowMapper = BeanPropertyRowMapper.newInstance(ResidentDto.class);
private static final Logger LOGGER = LoggerFactory.getLogger(ResidentDaoJdbc.class);
public ResidentDtoDaoJdbc(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
}
public List<ResidentDto> findAvgDate() {
LOGGER.debug("find all avg(Date): ");
return namedParameterJdbcTemplate.query(findAllAvgDateSQL, rowMapper);}
And my test method:
@Test
public void findAvgDateTest() {
List<ResidentDto> residentList = residentDaoDto.findAvgDate();
Assertions.assertNotNull(residentList);
Assertions.assertTrue(residentList.size() > 0);
}
I have list's value like this:
ResidentDto{residentId=1, firstName='Stephen', lastName='King', email='steph...@test.com', avgTime=null} ResidentDto{residentId=2, firstName='Margaret', lastName='Mitchell', email='margaret...@test.com', avgTime=null}
ResidentDto{residentId=3, firstName='Den', lastName='Brown', email='denb...@test.com', avgTime=null}
ResidentDto{residentId=4, firstName='Erih', lastName='Remark', email='rem...@test.com', avgTime=null}
Only one scrin, that I have correct output in DBeaver .
Also, I use H2 in Intellij from memory.