如何使用Hibernate选择列?

Thr*_*eaT 36 java mysql hibernate hibernate-criteria

我想使用Hibernate选择单个列而不是整个对象.到目前为止我有这个:

 List<String> firstname = null;

 firstname = getSession().createCriteria(People.class).list();
Run Code Online (Sandbox Code Playgroud)

我的问题是上面的代码将整个People表作为对象返回,而不仅仅是"firstname".我不知道如何指定只返回"firstname"而不是整个对象.

riz*_*z86 44

您可以为此设置投影,如:

.setProjection(Projections.property("firstname"))
Run Code Online (Sandbox Code Playgroud)

有了这个,你只能得到第一个名字作为回报.

我在堆栈上找到了相同场景的另一个链接.希望这也有助于如何使用hibernate标准只返回一个对象的一个​​元素而不是整个对象?


Tha*_*ran 7

如果您需要查询2个或更多列并从查询中获取值,则可以使用以下方法:

....
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];

    ....
}
Run Code Online (Sandbox Code Playgroud)