Как создать фабрику сессий при загрузке Spring без файла XML? - PullRequest
0 голосов
/ 10 февраля 2019

Я слежу за онлайн-руководством о том, как подключить класс Java к моей базе данных с помощью hibernate, однако я не могу найти, как создать SessionFactory, так как я не использую файл конфигурации hibernate, поэтому

SessionFactory factory = new Configuration().configure() 

не работает для меня.Я использовал spring initializr с Web, JPA, MySQL для создания проекта, и я настроил свои application.properties соответствующим образом (поэтому Hibernate IS подключен к базе данных)

Я попытался найти некоторые другие ответытакие как Spring Boot - дескриптор Hibernate SessionFactory

Однако ответы немного устарели / неясны, я пытаюсь создать объект и начать транзакцию с ним в моем сеансе в моемmain.java, и единственная проблема, с которой я столкнулся, - заставить FactorySession работать.

В учебном пособии показано простое решение

SessionFactory factory = new Configuration().configure("hibernate-cfg.xml.).addAnnotatedClass(Student.class).buildSessionFactory();

Session session = factory.getCurrentSession();

, которое создает фабричную сессию из файла конфигурации, исоздает сессию из этого, как я могу добиться того же?

1 Ответ

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

Вы должны использовать данные весны jpa, это очень просто сделает вашу работу. Когда весенняя загрузка увидит данные JPA в вашем classpath, она попытается автоматически автоматически связать менеджер сущностей для вас. Конечно, ему также понадобится компонент базы данных, который вваш случай должен исходить от bean-компонента источника данных MYSQL. Вы должны определить свои классы сущностей с аннотацией @Entity и следовать стандартному соглашению bean-компонента JPA.Затем вам нужно расширить CrudRepository в вашем выделенном репозитории

Допустим, у вас есть сущность Person с длинным идентификатором бина, тогда ваш репозиторий person будет выглядеть ниже

@ Repository

открытый интерфейс PersonRepository расширяет CrudRepository {

}

Затем вы можете добавить этот репозиторий в классы обслуживания ur или, если его небольшой проект, то в контроллер.Пожалуйста, проверьте методы в CrudRepository для получения дополнительной информации.Он имеет основные методы для сохранения, обновления, удаления и т. Д. Для сущности.

Надеюсь, это поможет.

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