2010-03-29 81 views
2

什么是最简单的休眠条件查询相当于简单的标准查询

SELECT name FROM people WHERE id='3' 

是:

criteria.add(Expression.eq("id", 3)); 

和我怎样才能检索它以字符串变量name字段的值,ID被独特的

回答

4

如果您使用“id”查询,为什么要将Hibernate条件设置为使用“name”?如果“id”被映射为主键并且您想要直接加载对象,请使用Session的Get方法。

例子:

People thePerson = (People) session.get(People.class, new Integer(1)); 

你可能也想尝试阅读this

+0

@兰斯哈珀我的意思是ID我修好了,你能告诉我一个例子吗? – ant 2010-03-29 16:17:11

+0

已编辑。假设你的类被命名为“People”,并且你的会话变量被命名为“session”,那么应该加载一个id为1的人。 – 2010-03-29 16:25:23

1

我想你只是想项目名称,而不是完整的实体。

Criteria crit = session.createCriteria(People.class) 
    .add(Restrictions.eq("id", 3); 
ProjectionList projectList = Projections.projectionList(); 
projectList.add(Projections.property("name")); 
crit.setProjection(projectList); 

(String) crit.uniqueResult(); 

我只想去,在这种情况下使用session.get(..),以及因为你只检索1人,也不需要经过任何指定的麻烦。