|
|
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть некая сущность TaggedObject у нее есть Set тегов Tag. Ну и понятно что теги могут пересекаться у разных tagged objects. То есть например taggedObjectOne имеет [tag1, tag2] а taggedObjectTwo имеет [tag1, tag3]. Если делать просто вставку "в лоб" hibernateSession.save(taggedObjectOne); hibernateSession.save(taggedObjectTwo); получаем Exception гласящий что мол нарушено ограничение уникальности по имени тега. Как разруливаются такие ситуации в best practices? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2013, 09:44:35 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
У вас tag1, вероятно, два разных объекта. А должен быть один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2013, 10:20:55 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, В базе таблица есть допустим такая: Код: sql 1. я об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2013, 13:37:53 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
scymaksВ базе таблица есть допустим такая: Я про объекты говорю, а не про базу. У вас так: Код: java 1. 2. Это и приводит к ошибке. Нужно сделать так: Код: java 1. 2. 3. 4. 5. 6. Тогда tag1 будет вставляться только один раз и ошибки не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2013, 13:43:18 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
Добрый день, scymaks! > В базе таблица есть допустим такая: > > table tags(tag_name varchar(10), unique(tag_name)); А не надо так делать. Надо так (если я правильно понял правила описания я таблиц в этом языке). table tags(tag_name varchar(10), tagget_object_id number, unique(tag_name, tagget_object_id)); -- Алексей Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2013, 13:52:59 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
GKS_Samara, Есть таблица tags . Код: sql 1. Есть таблица domain_objects . Код: sql 1. Есть таблица tagged_objects . Код: sql 1. Есть класс DomainObject у которого есть Set tags. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2013, 17:54:55 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
Добрый день, scymaks! > Есть класс DomainObject у которого есть Set tags. Ну и? DomainObjectTagSet, который в SQL содержит domainObjectId и tagId (и уникальный ключ по паре), а в Java - две ссылки. Можно это же сделать через @ManyToMany в DomainObject... -- Алексей Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 09:17:55 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, То есть при каждом добавлении Tag к Bug нужно залезть в базу, и достать тег с уже установленным id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 10:07:25 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
scymaksТо есть при каждом добавлении Tag к Bug нужно залезть в базу, и достать тег с уже установленным id? Нафига в базу? Он и так в сессии лежит. Достать его из сессии ничего не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 10:08:49 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Не, а если приложение перезапускали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 10:18:52 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
scymaksНе, а если приложение перезапускали? Чего? Какое это отношение имеет к первоначальному вопросу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 10:41:29 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Ну сессия же угробится. Нужно будет заново в базу лезть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 10:48:04 |
|
||
|
Вставка потенциально дублируемых записей.
|
|||
|---|---|---|---|
|
#18+
scymaksНу сессия же угробится. Нужно будет заново в базу лезть? Конечно. Если что-то уже сохранено в базе, то нужно его читать оттуда, а не завново создавать. Это, разве, не логично? Если теги нещадно эксплуатируются, то можно настроить 2nd level кэш, где они осядут. Там же и переживут перезагрузку. Кроме этого теги, такая штука, что можно их денормализовать и не парится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2013, 10:57:19 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38321834&tid=2129025]: |
0ms |
get settings: |
15ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
63ms |
get topic data: |
22ms |
get forum data: |
6ms |
get page messages: |
95ms |
get tp. blocked users: |
3ms |
| others: | 331ms |
| total: | 571ms |

| 0 / 0 |
