How do you select a column using Hibernate?

最后都变了- 提交于 2019-11-29 00:24:04

问题


I would like to select a single column instead of a whole object, using Hibernate. So far I have this:

 List<String> firstname = null;

 firstname = getSession().createCriteria(People.class).list();

My problem is that the above code returns the whole People table as an object instead of just "firstname". I'm not sure how to specify to only return "firstname" instead of the whole object.


回答1:


You can set the Projection for this like:

.setProjection(Projections.property("firstname"))

With this you can only get the firstname in return.

I have found another link on stack with the same scenario. Hope this will also help How to use hibernate criteria to return only one element of an object instead the entire object?




回答2:


If you need to query 2 or more columns and get the values from the query, this is the way to do it:

....
crit.setProjection(Projections.property("firstname"));
crit.setProjection(Projections.property("lastname"));

List result = crit.list();

...

for (Iterator it = result.iterator(); it.hasNext(); ) {
    Object[] myResult = (Object[]) it.next();
    String firstname = (String) myResult[0];
    String lastname = (String) myResult[1];

    ....
}



回答3:


You can use ProjectionList if you want condition base projection e.g

  ProjectionList prjection = Projections.projectionList();
if(abc){
    prjection.add(Projections.property("firstname"));
}
else if(xyz){
    prjection.add(Projections.property("lastname"));
}

    ........

    criteria.setProjection(prjection);


来源:https://stackoverflow.com/questions/10652358/how-do-you-select-a-column-using-hibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!