|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
Есть таблица Parent & 3 Child таблицы, которые наследуются от Parent Я хочу работать с таблицами в зависимости от того какой репозиторий создан Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Проблема в том, что как не создал сервис TableService<Parent> TableService<Child1> Репозиторий всегда работает с таблицей Parent Я нашел пару вопросов на данную тему https://stackoverflow.com/questions/35059570/spring-jparepository-using-generic-entity То есть репозитории создается на старте МОжно ли обыграть данную ситуацию, чтоб работать только с одним сервисом TableService? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2021, 23:36 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
Проблема в том что в сервис инжектится не тот repository? Тогда избавься от autowiring'a/PackageScan'a и указывай явно какой репозиторий инжектить. Ну либо как советуют на SO - создавай явно интерфейсы/классы типа Child1Repo, Child2Repo, etc. Но тогда 1 сервис не сможет работать с разными репозиториями (если в этом есть необходимость). А вообще необычная архитектура получается. Выглядит как будто ты хочешь какой-то слишком универсальный код написать. Чтоб, как правило, либо очень сложно/запутанно, либо бесполезно. Тебе это точно надо и по-другому никак? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 07:17 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Проблема в том что в сервис инжектится не тот repository? Тогда избавься от autowiring'a/PackageScan'a и указывай явно какой репозиторий инжектить. Ну либо как советуют на SO - создавай явно интерфейсы/классы типа Child1Repo, Child2Repo, etc. Но тогда 1 сервис не сможет работать с разными репозиториями (если в этом есть необходимость). А вообще необычная архитектура получается. Выглядит как будто ты хочешь какой-то слишком универсальный код написать. Чтоб, как правило, либо очень сложно/запутанно, либо бесполезно. Тебе это точно надо и по-другому никак? Да по сути все очень просто надо Entity в Dto сконвертировать Как работа идет Сервис -> Репозитории -> Ентити -> Дто Я и подумал, что можно Сервис и Репозитори универсальными сделать (таблицы наследуются от одной) А для конвертации функциональный интерфейс пробрасывать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 08:42 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
У тебя бек - это просто данные достать и в JSON сконвертировать? Тогда можно хоть с репозитория сразу DTO возвращать, и сервис не нужен будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 10:20 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev У тебя бек - это просто данные достать и в JSON сконвертировать? Тогда можно хоть с репозитория сразу DTO возвращать, и сервис не нужен будет. Ну не совсем скажем примитивный CRUD с небольшой логикой И пилить 4 сервиса и 4 репозитория ну это копипаст Все основные поля заполняются в Parent А дополнителньые уже в Child1-3 Получается Что вся логика заполнения основных полей у меня дублируется 4 раз Я думал уже при сохранения Child кастовать ее к Parent Далее, сохраненную ParentEnity копировать в ChildEnity, заполнять оставшиеся поля и сохранять уже... Но тут лишние запросы будут ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 10:47 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
-=Koba=-, Покажи реальный копипаст. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 11:03 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
-=Koba=-, >скажем примитивный CRUD с небольшой логикой Хмммм.. Не подходят готовые Repository CrudRepository PagingAndStoringRepository JpaRepository ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 11:16 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
авторЧто вся логика заполнения основных полей у меня дублируется 4 разЗаполнение полей в DTO? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 11:29 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
PetroNotC Sharp -=Koba=-, >скажем примитивный CRUD с небольшой логикой Хмммм.. Не подходят готовые Repository CrudRepository PagingAndStoringRepository JpaRepository ? TableService Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
]] ParentDto от него наследуется ChildDto ParentEntity от него наследуется ChildEntity saveCaseDocEntity тут идет сохранение только в репозитори ParentRepository А было удобнее если б я могу упарвлять репозиторием в какой сохранять Когда работаю с Parent то ParentEntity parentEntity = saveCaseDocEntity(caseId, dto); А если Child то ChildEntity childEntity = saveCaseDocEntity(caseId, dto); Поэтому и пытался перевести репозитории на Generic ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 11:37 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
-=Koba=-, Покажи дублирование без наследования. Модель в субд не очень дружит с наследованием. Там нет ООП ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 12:31 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
Кроме того сам паттерн репо это не наследование. Это жесткий контракт. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 12:35 |
|
Generic в JPA Repository
|
|||
---|---|---|---|
#18+
-=Koba=-, Мое имхо что ты как программист перемудрил и решил добавить наследование. >ParentDto от него наследуется ChildDto ParentEntity от него наследуется ChildEntity = а полагается сущности называть БИЗНЕС именами. А не множить программисткими терминами items, parent и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 12:50 |
|
|
start [/forum/topic.php?fid=59&tid=2120405]: |
0ms |
get settings: |
18ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
35ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
245ms |
get tp. blocked users: |
1ms |
others: | 7ms |
total: | 320ms |
0 / 0 |