|
|
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
Есть oldAddress Есть newAddress Есть entity Код: java 1. 2. 3. 4. 5. 6. 7. естесно получают ошибку что Exception in thread "main" javax.persistence.EntityExistsException: a different object with the same identifier value was already associated with the session: [entity.Address#0] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 12:35:02 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
А @JoinColumn добавить и указать какой FK в какой ассоциации используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 13:05:13 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
BlazkowiczА @JoinColumn добавить и указать какой FK в какой ассоциации используется? и как это сделать? на стаковерфлоу утверждаеют что это невозможно сделать маппингом. Решение делать через наследование или вводить дополнительный поле в адрес через enum которое будет указывать являтеся ли адрес старым или новым и при извлечении проверять старый или новый адрес извлекся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 13:19:16 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
Так стоп. Ошбка ведь рантайма а не маппинга. Да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 13:23:22 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
Да. Вроде как hibernate не может определить что где какая сущность это вроде как противоречит самому понятию OneToOne ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 13:57:19 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
llemingДа. Вроде как hibernate не может определить что где какая сущность это вроде как противоречит самому понятию OneToOne А по тексту не скажешь. Ругается на два разных объекта с одинаковым id = 0. Что это за id вообще такой. Почему там не null, если это новый адрес? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:15:17 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
Что именно заставило вас полагать что ошибка и маппинг как-то связаны? Либо ещё какая-то инфа, которая здесь не указана. Либо они не связаны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:16:41 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
насколько я понял если я создаю oldAddress и newAddress то оба по умалчанию получают id 0. во вторых исключение типа javax.persistence.EntityExistsException ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:19:56 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:23:10 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
llemingнасколько я понял если я создаю oldAddress и newAddress то оба по умалчанию получают id 0. По-умолчанию для новых сущностей id принятно делать null. А для id=0 нужно в маппинге указать, что id=0 это новая сущность, а не уже сохраненная. llemingнасколько я понял во вторых исключение типа javax.persistence.EntityExistsException Ну, мне не очевидно как это исключения связано с маппингом приведенным выше. Его можно и без этого воспроизвести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:26:39 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
Верно. По-умолчанию не будет работать, потому что используется одно и то же значение ID. Почеме через JoinColumn не работает? Там хибер тоже пытается одно и тоже ID назнчить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:36:21 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
ну у меня id это long а не Long, хотя как поведет себя с autoboxing не знаю. Попробую с Long. каких либо требовани по id я не нашел и по привычке пользуюсь long типом который по дефолту равен 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:46:42 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
вот те раз. хе хе в этом случае работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:51:14 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
llemingвот те раз. хе хе в этом случае работает Как это? Не может быть. На stackoverflow, ведь пишут что не может работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:53:04 |
|
||
|
Два поля в сущности одинакового типа
|
|||
|---|---|---|---|
|
#18+
Blazkowiczllemingвот те раз. хе хе в этом случае работает Как это? Не может быть. На stackoverflow, ведь пишут что не может работать. вот и верь стаку после такого :). интересно что создается в базе дополнительное поле в таблице адресс с именем класса DTYPE содержащее имя класса Address можно просто запилить класс обертку, который что то вроде OldAddress extend Address и NewAddress extend Address. чтобы их имена попали в DTYPE ну так на всякий, чтобы чистые sql запросы было легче делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 15:13:54 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=205&tid=2128407]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
79ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 348ms |

| 0 / 0 |
