Spring PersistanceContext, EntityManager и работа с вашей базой данных - PullRequest
0 голосов
/ 24 февраля 2019

Я работал над некоторыми основными веб-приложениями Spring и столкнулся с некоторыми проблемами при правильном управлении моей базой данных.С тех пор я использую базовые репозитории JPA, а классические save () и findById (long id) выполняют свою работу за меня.Однако недавно я заметил, что когда я получаю объект из базы данных и изменяю его, он не сохраняется.Это привело меня к поиску в гугле всех вещей в названии вопроса.То, что я обнаружил, действительно смутило меня, так что, возможно, кто-то может прояснить это для меня:

  • Я заметил, что некоторые люди используют Session (из постоянства), а некоторые используют EntityManager.Почему?
  • Некоторые люди говорят, что вы ДОЛЖНЫ внедрить EntityManagerFactory и получить оттуда EntityManager, так ли это и почему?
    • Я не смог правильно сделать это, после того, как после одного или двух руководств, кто-нибудь еще хочет дать мне объяснение, как это сделать?
    • Я видел, что EntityManagerFactory вводится втысяча разных способов (довольно запутанно), что было бы лучше?
  • Я видел это Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);, это дало мне возможность работать с entityManager, но у меня были ошибки, и людиоб этом сказано, что: With regards to the original question about obtaining an EntityManagerFactory in a non-spring setting. You simply call Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);, какой будет установка без пружины?
  • Есть ли разница, если я работаю над разработкой в ​​простой базе данных H2 или в базе данных mysql?
    • Ссылка на хороший и современный учебник или рекомендацию книги, которая охватывает это, я изучаю это в классе, и они никогда не упоминали ничего о постоянстве контекста и управлении сущностями, так что я совершенно сбит с толку.

1 Ответ

0 голосов
/ 24 февраля 2019

Существует четыре способа использования Spring DAO:

  • JdbcTemplate + поддержка Spring DAO (вы будете использовать класс JdbcTemplate)
  • Hibernate + Spring DAO поддержка (вы будете использовать класс SessionFactory)
  • JPA + поддержка пружинного DAO (вы будете использовать класс EntityManager)
  • JPA + Spring Data (абстракция высокого уровня для DAO)

JDBC, Hibernate, JPA, являются независимыми технологиями.Если вы научитесь hibernate, вы узнаете, как использовать SessionFactory.То же самое для jpa и EntityManager. Spring Data - это еще одна абстракция от Spring для доступа к базе данных.

Для получения дополнительной информации о поддержке Spring DAO, пожалуйста, проверьте документацию здесь

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