Может кто-нибудь объяснить, что делает этот метод гибернации, - PullRequest
0 голосов
/ 21 марта 2011

Я новичок в спящем режиме. Я видел несколько примеров в интернете,

org.hibernate.Session session;

//assuming session instance is initialized 

    SampleBean msoft=(SampleBean)session.get(SampleBean.class,id);
    //**id** is of the type Long

Объяснение документации:

Объект get (класс clazz, Serializable id)

Возвращать постоянный экземпляр заданного класса сущностей с заданным идентификатором или ноль, если такого постоянного экземпляра нет.

Я хочу знать,

  1. является ли здесь идентификатор первичным ключом?
  2. Может ли какой-нибудь орган объяснить мне, как работает этот метод? Возвращает ли он только одну строку в объекте SampleBean?
  3. Что произойдет, если будет возвращено более одной строки?

PS: первичный ключ для таблицы, отображаемой с использованием SampleBean, имеет тип INT.

Ответы [ 2 ]

2 голосов
/ 21 марта 2011

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

Да.Идентификатор должен быть уникальным.

Может ли кто-нибудь объяснить мне, как работает этот метод,

Поиск в БД указанного идентификатора и возврат экземпляра clazz.

Возвращает ли он только одну строку в объекте SampleBean?

Да.Поскольку идентификатор уникален и должна быть только одна строка.

Что произойдет, если он вернет более одной строки?

Не может произойти, если идентификатор уникален илипервичный ключ.

1 голос
/ 21 марта 2011

Да, идентификатор здесь является первичным ключом.Это будет экземпляр любого типа, который указанная сущность использует в качестве своего первичного ключа (как правило, Integer, Long или String, хотя другие типы вполне возможны).

Метод работает путем перехода к таблице в базе данных, которая соответствует данному типу сущности (в данном случае SampleBean), и выполнению выборки на основе первичного ключа.По сути, он запускает SQL-запрос, который примерно соответствует SELECT * FROM sampleBeanTable t WHERE t.primaryKey = [id];.

. Будет возвращено не более 1 строки (или, точнее, 1 экземпляра объекта) (или ваш экземпляр базы данных очень, очень поврежден).потому что если есть несколько строк, это будет означать, что два или более объектов имеют одинаковый ключ).Если с данным ключом не найдено ни одного объекта, метод возвращает null.

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