繁体   English   中英

Hibernate,按id或唯一列选择

[英]Hibernate, select by id or unique column

我正在使用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都会显示它正在对数据库执行新查询。

将字符串标识符缓存的最佳方法是什么?

在按名称查询时,您需要使用查询缓存来避免数据库访问。

http://www.javalobby.org/java/forums/t48846.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM