2011-10-03 4 views
0

나는 여기에 자바에지고있다. 재미와 동시에 :자바 쿼리 db 문제. 최대 절전 모드와 struts2를 사용하여

전혀 실망 나는 간단한 방법이라고 showUsernames()를 가지고

public String showUsernames(){ 
    TimesheetUserDAO su = new TimesheetUserDAO(); 
    Session session = su.getSession(); 
    setUsers(su.findByUsername(_users)); 
    session.close(); 
    return SUCCESS; 
} 

... 그러나, 나는 데이터베이스에서 바로 사용자 이름을 점점 시간을 보내고 있어요. Hibernate DAO가 이것을 올바르게 할 수 있습니까? su.findAll()을 사용하여 모든 것을 반환 할 수 있습니다.

의견이 있으십니까? 더 많은 코드가 필요하십니까? 감사합니다 :)

답변

1

DAO를 아마 대신 결과로 List<User>있는의,

select u from User u where ... 

변경 물론

select u.name from User u where ... 

에 쿼리와 같은 요청을 executee, 당신은 List<String>을해야합니다 .

이것은 Hibernate reference documentation에 설명 된 기본 사항입니다. 읽어 보셨습니까?

또한 DAO에서 세션을 가져 와서 이렇게 수동으로 닫으면 디자인 문제가 발생합니다. 이것은 서비스 계층에 의해 캡슐화되어야하며, 선언적 트랜잭션 처리에 의해 더 잘 캡슐화되어야합니다.

+0

메모 주셔서 감사합니다. 이 설명서를 더 자세히 읽도록하겠습니다. – jasonflaherty

관련 문제