Как hibernate узнает, как сохранить данные, передаваемые классу сущностей через установщик? - PullRequest
0 голосов
/ 11 июня 2018

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

Пожалуйста, предложите мне документацию или что-нибудь связанное или любые ответы.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Учетные данные БД будут передаваться через файл hibernate.cfg.xml, такой как класс драйвера, URL, имя пользователя, пароль, диалект, hbm2ddl.auto и т. Д.

Внутри класса pojo, @Table(name="table_name") isиспользуется для получения доступа к таблице в БД.

Каждая переменная в классе pojo помечена @column(name="column_name").Переменные указывают на соответствующие столбцы в таблице.Если вы хотите объявить переменную, которой нет в таблице БД, аннотируйте ее с помощью @ Transient.

Теперь, когда вы создаете объект класса pojo, затем устанавливаете данные для объекта с помощью setter, каждая переменная внутриpojo для этого объекта инициализируется с некоторым значением, и в то же время переменная указывает на определенные столбцы.

Поэтому, когда вы вызываете метод persist() или save() или saveOrUpdate(), передавая объект, значенияПеременные будут введены в соответствующие столбцы.

После того, как вызов будет сохранен или сохранен или saveOrUpdate, вы должны вызвать commit()

0 голосов
/ 11 июня 2018

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

. Во время сброса платформа будет проверять состояния объекта(управляемый, временный или удаленный) и провести различие между всеми свойствами управляемого объекта и соответствующим снимком для создания запроса на вставку, обновление и удаление.

Это стратегия грязной проверки по умолчанию, в которой задействованы некоторые ресурсы ЦП и памяти.Вы можете уменьшить его с помощью некоторого механизма, такого как использование аннотации @Imumutable.

Другой вариант заключается в использовании улучшения байтового кода для автоматической грязной проверки .С помощью этой стратегии каждая сущность будет вести учет того, что изменилось внутри, и во время сброса Hibernate просто спросит каждую сущность, что изменилось.

Надеюсь, это помогло!

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