我正在使用hibernate for Java,我希望能够通过数据库中的id或名称选择用户。
关于Hibernate的好处是它通过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),hibernate将只显示它是第一次执行。
但每次我使用GetUser(“user1”)时,hibernate都会显示它正在对数据库执行新查询。
将高速缓存字符串标识符的最佳方法是什么?