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

35

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

 List<String> firstname = null;

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

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

Ваш Ответ

3   ответа
43

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

При этом вы можете получить только имя в ответ.

Я нашел еще одну ссылку в стеке с тем же сценарием. Надеюсь, это также поможет Как использовать критерии гибернации для возврата только одного элемента объекта вместо всего объекта?

2

если хотите проецировать на основе условий, например,

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

    ........

    criteria.setProjection(prjection);
7

апроса, это способ сделать это:

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

    ....
}

Похожие вопросы