|
|
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
Хочу посоветоваться как лучше/правильней организовать алгоритм. Есть 2 сущности Application(заявление) и ApplicationList(список, который может содержать несколько Application). Например: Application idname1 ronaldo2 messi ApplicationList idname1 list02 list1 Связная таблица app_and_list app_and_list list_idapp_id1 11 2 Пояснение: ronaldo и messi входят в list0. Необходимо создать Application и поместить(добавить) его в список под названием list0, то есть добавить к ronaldo и messi. Покажу код, но он не совсем работает и мне не нравиться - хочу его переделать и сделать по-нормальному. Подкиньте идеи. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. При такой реализации в списке list0 окажется только neymar. Можно реализовать, чтоб сначала получить список list0(с ronaldo и messi), добавить в него neymar, и потом сохранить Код: java 1. Тогда в итоге в базе в списке list0 будут все трое. Но такое решение мне не нравится из за того, что необходимо сначала брать все данные из базы(то есть тех, кто входит в список list0). Вопрос: можно ли с помощью JpaRepository и Hibernate добавлять и удалять записи по одному в список? То есть в результате должно быть так: Application idname1 ronaldo2 messi3 neymar ApplicationList idname1 list02 list1 Связная таблица app_and_list app_and_list list_idapp_id1 11 21 3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 20:14 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
wvetal Но такое решение мне не нравится из за того, что необходимо сначала брать все данные из базы(то есть тех, кто входит в список list0). это заблуждение. Ленивая загрузка ассоциаций может избавить от загрузки лишних данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 21:44 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
wvetalЕсть 2 сущности Application(заявление) и ApplicationList(список, который может содержать несколько Application). Обычно просто список сущностью быть не может. У тебя и так при первой сущности будет таблица со списком Заявлений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 22:47 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
Petro123wvetalЕсть 2 сущности Application(заявление) и ApplicationList(список, который может содержать несколько Application). Обычно просто список сущностью быть не может. У тебя и так при первой сущности будет таблица со списком Заявлений.Мне необходимо распределять Заявления по спискам(так сказать категориям), и дальше нужно работать со списками - поэтому 2 сущности. Blazkowiczwvetal Но такое решение мне не нравится из за того, что необходимо сначала брать все данные из базы(то есть тех, кто входит в список list0). это заблуждение. Ленивая загрузка ассоциаций может избавить от загрузки лишних данных.Меня беспокоит не загрузка лишних данных. Нужно чтоб при добавлении нового Заявления в ApplicationList остался список предыдущих Заявлений. Или, если я правильно понял ленивая загрузка решит проблему? Проверю завтра... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2016, 23:26 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
А ещё есть такая штука, как dirty check. Загрузил, добавил элемент и больше ничего делать не нужно. При выходе из транзакционного метода Хибер обнаружит изменение и закоммитит в базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 06:43 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
wvetal, Вот у вас и сущность Категория появилась. 7 раз отмерь, один раз...код пиши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 08:13 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
Зачем тут много ко многим отношения непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 08:17 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
wvetalИли, если я правильно понял ленивая загрузка решит проблему? Проверю завтра...Проверил - не помогло. BlazkowiczА ещё есть такая штука, как dirty check. Загрузил, добавил элемент и больше ничего делать не нужно. При выходе из транзакционного метода Хибер обнаружит изменение и закоммитит в базуГуглю про dirty check - пока ничего нормального не нагуглил, продолжаю... Petro123Зачем тут много ко многим отношения непонятноТут не много ко многим отношения, а @OneToMany. В одной Катагории может быть много Заявлений, и в то же время Заявление может быть только в одной Категории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 13:57 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
wvetal, Это странно. Потому что мой гугл предлагает кучу информации: https://www.google.com/?#q=hibernate dirty checking Или вот, например, мануал, поиск по слову dirty https://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html_single/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 14:06 |
|
||
|
JpaRepository и Hibernate.
|
|||
|---|---|---|---|
|
#18+
wvetalТут не много ко многим отношения ты аннотации ставь любые. Я вижу факт в 3 таблы у тебя выше. Классика. Это то что будет в базе. Ты не понял, что категория у тебя - атрибут в классе Заявление. Итого 2 таблицы с фореген кей FK Но дело твоё. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2016, 14:15 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39162576&tid=2124386]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 396ms |

| 0 / 0 |
