Подтвердить что ты не робот

Как выбрать столбец с помощью Hibernate?

Я хотел бы выбрать один столбец вместо целого объекта, используя Hibernate. Пока у меня есть это:

 List<String> firstname = null;

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

Моя проблема в том, что приведенный выше код возвращает целую таблицу People как объект, а не просто "firstname". Я не уверен, как указывать только для возврата "firstname" вместо всего объекта.

4b9b3361

Ответ 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];

    ....
}

Ответ 3

Вы можете использовать ProjectionList, если хотите выполнить базовую проекцию условия например

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

    ........

    criteria.setProjection(prjection);