|
|
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Столкнулся с проблемой. Отдаю заполненный полученный из базы данных бин в форму с id=11..., а получаю обратно с id=0. Т.е. немогу сделать update по нему Как быть? Наверняка ктото сталкивался..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 12:38:46 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Можно id хранить в hidden поле. Можно целиком объект хранить в HttpSession, и апдейтить его значениями с формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:02:02 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
А можно0ли поставить аннотацию в domain над полем id, чтобы поле не трогалось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:15:38 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
ccoderА можно0ли поставить аннотацию в domain над полем id, чтобы поле не трогалось? Что значит "трогалось". Как вы определяете что оно у вас "трогается"? Может у вас новый бин собирается из полей формы, а ID там нет, потому что оно уже "не трогается". Какие вообще фреймверки и технологии вы используете в вашей задаче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:24:28 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Spring MVC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:32:03 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Ну да у меня новый наверно объект, помучто даже с hidden field id авторCould not execute JDBC batch update; SQL [insert into ACCOUNT (login, password, id) values (?, ?, ?)]; constraint [USER2.LOGIN_UK1]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execut e JDBC batch update ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:33:05 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Как тут быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:33:31 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Т.е. id поле перед обновлением заполнено (не 0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:39:03 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Использую Hibernate, Spiring MVC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:39:30 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
http://stackoverflow.com/questions/8116612/spring-3-mvc-form-backing-object-has-to-be-in-session-how-can-i-avoid-this Есть два подхода. Первый - простой и надежный. При загрузке формы, нужно поместить бин в сессию @SessionAttribute. В методе, который обрабатывает submit, так же указать что это бин хранится в HTTP сессии. Тогда Spring вытянет его из сессии. Установит новые значения и вы получите готовый для полноценной работы Hibernate Bean. У этого способа есть только одна проблема. Это излишний расход памяти для хранения HTTP Session. В высоконагруженых кластерхных решениях это серьезные затраты на память и репликацию. В этом случае ID бина передают на форму в виде hidden поля. (Можно и более хитроумные данные передавать в скрытое поле, не только Id, а, например, целиком сериализованый бин) Но в этом случае вы отгребете сложностей в работе с Hibernate коллекциями, ленивыми свойствами и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 13:54:34 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Спасибо за изъяснение. Но чтото всеравно немогу сохранить объект. По порядку 1. сохраняю Код: java 1. 2. Перед отправкой в форму всё прекрасно сохраняется. 3. После формы, id теперь есть (сделал с @SessionAttribute), но при сохранении авторorg.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into ACCOUNT (login, password, id) values (?, ?, ?)]; constraint [USER2.LOGIN_UK1]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execut e JDBC batch update при этом с таким-же самыми полями до формы сохраняется как надо (проверил) Вот так подробно про один и тотже объект до и после http://img607.imageshack.us/img607/5232/aaabbbx.png за исключением rePassword, которое Код: java 1. 2. (если заполнить его до формы то тоже сохраняется) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 14:26:29 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 14:29:47 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
Как видно, даже адреса у объектов совпадают. В чёмже дело... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 14:30:29 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
ccoder Код: java 1. Изучайте внимательнее: http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html save/update/saveOrUpdate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 14:33:25 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
ccoderКак видно, даже адреса у объектов совпадают Круто. Два объекта расположились по одному и тому же адресу в памяти. Чудеса архивации данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 14:34:58 |
|
||
|
Как быть если от формы получаю с id=0
|
|||
|---|---|---|---|
|
#18+
ccoder, необъяснимо, почему insert генерит. Точнее, как раз объяснимо: вы новый объект создаете или сессия у вас истекает и вы в новой сессии объект из предыдущей сохраняете..видимо. Это я по опыту работы с хибером так думаю 4) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2012, 14:35:29 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=296&tid=2132030]: |
0ms |
get settings: |
14ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
37ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 339ms |
| total: | 510ms |

| 0 / 0 |
