2010-06-17 3 views
3

Java 용 최대 절전 모드를 사용하고 있으며 데이터베이스에서 ID 또는 이름별로 사용자를 선택할 수 있기를 원합니다.최대 절전 모드, ID 또는 고유 한 열로 선택

최대 절전 모드에 대한 좋은 점은 id로 결과를 캐시한다는 것이지만 이름으로 캐시를 만들 수없는 것 같습니다.

static Session openSession = Factory.openSession(); 

public static User GetUser(int Id) { 
    return (User) openSession.get(User.class, new Integer(Id)); 
} 

public static User GetUser(String Name){ 
    return (User) openSession.createCriteria(User.class). 
      add(Restrictions.eq("username", Name)). 
      uniqueResult(); 

} 

GetUser (1)을 여러 번 사용하면 최대 절전 모드가 처음 실행 된 것으로 표시됩니다.

그러나 GetUser ("user1")를 사용할 때마다 최대 절전 모드는 데이터베이스에 새 쿼리를 실행하고 있음을 보여줍니다.

문자열 식별자를 캐시하는 가장 좋은 방법은 무엇입니까?

답변