Hibernate найти по критериям получить один результат - PullRequest
1 голос
/ 22 апреля 2010

Я экспериментирую, используя Hibernate.

Я пытаюсь получить пользователя по идентификатору, это то, что я делаю

public User get(DetachedCriteria dc){
    List<User> users = getHibernateTemplate().findByCriteria(dc);
    if(users != null)
    {
        return users.get(0);
    }
    else return null;
}

но происходит сбой, когда пользователя нет в базе данных. Не могли бы вы помочь мне понять, как этого добиться?

Спасибо

1 Ответ

4 голосов
/ 22 апреля 2010

Если вы хотите загрузить что-то по идентификатору, вы должны использовать либо Load, либо Get. У Ayende есть хороший пост о разнице между Разницей между Get, Load и запросом по id .

Насколько ваш запрос терпит неудачу, когда пользователь отсутствует в базе данных. Это потому, что запрос вернет пустой список, который отличается от нуля. Поэтому, когда вы пытаетесь получить доступ к 0-му элементу списка, в котором нет ничего, вы, вероятно, получаете исключение индекса за пределами границ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...