|
|
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
и всё таки может мне кто-нибудь объяснить когда hibernate вызывает конструктор объекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 11:08:04 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
ivanraТот же самый принцип, но обнуляем коллекциии в самом методе, если знаем, что они не должны обновляться: Код: java 1. 2. 3. 4. 5. 6. Это не работает - всё также обнуляется. все зависимые таблицы обнулились в базе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 11:21:24 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
redwhite90и всё таки может мне кто-нибудь объяснить когда hibernate вызывает конструктор объекта? Ну поставь брейкпоинт в конструкторе да посмотри. Короткоий ответ - всегда, когда подгружает из базы. Но если объект есть в кэше - то конструктор вызываться не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 11:46:51 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
забыл ник, авторвсегда, когда подгружает из базы Так где у меня подгрузка из базы то? у меня только загрузка в базу. Но конструктор то вызвался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 12:25:49 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
redwhite90Так где у меня подгрузка из базы то? у меня только загрузка в базу. Но конструктор то вызвался. автор Мне надо заново грузить из базы вакансии, руками их приаттачивать к кандидату Если только загрузка, то объект новый = создал, приаттачил все списки - сохранил. Всё это в короткой транзакции этой же сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 13:02:55 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
Вот отсюда все проблемы: redwhite90Благодаря возможностям спринга я могу получить частично заполненный объект кандидата(без списка вакансий). Получили объект минуя хибернейт - так и сохраняйте его не в хибернейте. Ну и плюс то, что не показано, но скорее всего, картина такая: - есть объект Candidate(h) в хибернейте - есть Candidate(s0), который инжектится спрингом, какая связь между ними, не видно - опять-таки не видно, сохраняется ли Candidate(s0) в сессии (а если нет, то он конструируется при каждом инжекте, и заполняется значениями из формы. Поэтому, если появятся новые поля - они будут затираться, если их нет на форме; возможна атака в виде подделки скрытого поля ${candidate.id} в post-заросе). - В общем случае, в /saveCandidate это уже 3 объект, назовем его Candidate(s1), и вот он сохраняется в базу Я вижу 2 способа решить проблему: 1) инжектить полный объект Candidate(h) (если хочется сэкономить, списки можно сделать ленивыми); сохранять его в сессию. 2) если не сохранять в сессию, то получать полный объект Candidate(h) в методе saveCandidate и заполнять те поля, которые мы хотим поменять из Candidate(s1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 13:28:52 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
Petro123redwhite90Так где у меня подгрузка из базы то? у меня только загрузка в базу. Но конструктор то вызвался. автор Мне надо заново грузить из базы вакансии, руками их приаттачивать к кандидату Если только загрузка, то объект новый = создал, приаттачил все списки - сохранил. Всё это в короткой транзакции этой же сессии. update. То есть в базе он уже есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 15:14:06 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
ivanraВот отсюда все проблемы: redwhite90Благодаря возможностям спринга я могу получить частично заполненный объект кандидата(без списка вакансий). Получили объект минуя хибернейт - так и сохраняйте его не в хибернейте. Ну и плюс то, что не показано, но скорее всего, картина такая: - есть объект Candidate(h) в хибернейте - есть Candidate(s0), который инжектится спрингом, какая связь между ними, не видно - опять-таки не видно, сохраняется ли Candidate(s0) в сессии (а если нет, то он конструируется при каждом инжекте, и заполняется значениями из формы. Поэтому, если появятся новые поля - они будут затираться, если их нет на форме; возможна атака в виде подделки скрытого поля ${candidate.id} в post-заросе). - В общем случае, в /saveCandidate это уже 3 объект, назовем его Candidate(s1), и вот он сохраняется в базу Я вижу 2 способа решить проблему: 1) инжектить полный объект Candidate(h) (если хочется сэкономить, списки можно сделать ленивыми); сохранять его в сессию. 2) если не сохранять в сессию, то получать полный объект Candidate(h) в методе saveCandidate и заполнять те поля, которые мы хотим поменять из Candidate(s1) объект получен хибернейтом всё таки изначально. Это что-то типа личного кабинета, где иможно имя, адрес, телефон .... поменять. вызывается метод контроллера, который грузит кандидата соответствующего, сохраняется в request(думаю, что model.addAttribute(?,?) это делает) данные выводятся в текстовых полях формы с возможностью изменения. по кнопке эти данные считываются в новый объект кандидата и пытаются сохраниться. с hidden полем действительно беда получается, но иначе придётся действительно в сессию класть объект) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 15:20:39 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
redwhite90забыл ник, авторвсегда, когда подгружает из базы Так где у меня подгрузка из базы то? у меня только загрузка в базу. Но конструктор то вызвался. ну где же? где? мне правда очень интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 22:02:18 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
брейкпоинт таки не судьба поставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2013, 22:09:34 |
|
||
|
Вопрос по хибернейту
|
|||
|---|---|---|---|
|
#18+
забыл никбрейкпоинт таки не судьба поставить? Как я могу все случаи проверить когда он вызывается? написать все возможные вызовы хибернейтом этого объекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 10:10:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38365955&tid=2128805]: |
0ms |
get settings: |
19ms |
get forum list: |
26ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
18ms |
get forum data: |
5ms |
get page messages: |
76ms |
get tp. blocked users: |
3ms |
| others: | 299ms |
| total: | 502ms |

| 0 / 0 |
