如何使用休眠选择列?

2022-09-01 05:15:06

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

 List<String> firstname = null;

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

我的问题是,上面的代码将整个 People 表作为对象返回,而不仅仅是“名字”。我不确定如何指定仅返回“名字”而不是整个对象。


答案 1

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

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

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

我在堆栈上发现了另一个具有相同场景的链接。希望这也将有助于如何使用休眠条件仅返回对象的一个元素而不是整个对象?


答案 2

如果您需要查询 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];

    ....
}

推荐