Например, у вас есть класс User
с полями username
, password
, и вам необходимо создать слои абстракции
Entity -> Repository (DAO) -> Service
как
User-> UserRepository -> UserService
Естьв основном 2 способа работы - первый с репозиторием JPA и второй с репозиторием Mongo, кроме стиля ActiveRecord по умолчанию.Настройка с Mongo или JPA аналогична.Я объясняю команды для репозитория JPA здесь.
1) выполнить команду установки
jpa setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT
2) определить для новой сущности пользователя значение по умолчанию activeRecord
, равное false (важно)
entity --class ~.domain.User --activeRecord false
3) определить поля для этой сущности пользователя
field string --fieldName userName --notNull --sizeMin 3 --class ~.domain.User
field string --fieldName password --notNull --sizeMin 3 --class ~.domain.User
4) Создать новый интерфейс репозитория JPA с помощью команды repository jpa
, что эквивалентно созданию нового интерфейса репозитория путем расширения класса данных JpaRepository данных.public interface UserRepository extends JpaRepository<User, Long> {/*Code*/}
.Это обеспечивает все функции CRUD, и вам не нужно ничего добавлять.Вы можете добавить другие функции поиска.Интерфейс репозитория аналогичен интерфейсу DAO.DAO более тесно связан с персистентными сущностями, а репозиторий больше связан с объектами домена.
repository jpa --interface ~.repository.UserRepository --entity ~.domain.User
5) Теперь добавьте слой Service, где вы можете добавить всю бизнес-логику в свое приложение.Этот шаг создаст UserService
интерфейс и UserServiceImpl
классы
service --interface ~.service.UserService --entity ~.domain.User
Настройка слоев завершена.Теперь вы можете создать веб-слой и выполнить свой код.
web mvc setup
web mvc all --package ~.web