|
|
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
пусть сделает метод получения ID - IDENTITY с триггером Не выйдет, тогда SEQUENCE с сиквенсом на каждую таблицу Удачи аффтару! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2015, 17:17 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
Petro123Alexey TominEntity entity = new Entity(); //entity.id == null передали в какой-то другой сервис, тот значение сохранил. - отсоединять объект от сессии хибера нельзя - сессия хибера должна быть как можно короче, напр 0,01 сек. Отсюда твой пример не верен. - либо закрой сессию и получишь ID. Либо отсоедини от сессии и тогда объект обезличен. Фигню пишешь. Ещё раз- создал объект, передал в метод, который его сохранил, и теперь это другой объект - т.к. всё проверяется по equals, который (вполне возможно) включает ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2015, 18:42 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, Передал по ссылке? Зачем его сравнивать? Я вроде описал стандарт работы по документации. Даже 2 варианта, если бд поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2015, 19:16 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
Petro123Передал по ссылке? Зачем его сравнивать? Нет, не надо ничего сравнивать. Меньше кода- меньше ошибок. Лучше вообще софт не писать- ошибок и не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 08:12 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
Alexey TominPetro123Передал по ссылке? Зачем его сравнивать? Нет, не надо ничего сравнивать. Меньше кода- меньше ошибок. Лучше вообще софт не писать- ошибок и не будет. сравнивать надо, но зачем сравнивать несохраненную сущность с другой сущностью смысла нет особого. Все сущности меняют ID внезапно(метод setID ведь есть) если только ID вы не генерируете на уровне app и не передаете в конструктор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 10:28 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
llemingно зачем сравнивать несохраненную сущность с другой сущностью смысла нет особого. +1 Т.е. взял с БД, изменил и сразу обратно скинул (первый кеш) тем более что есть приложение лезущее напрямую в БД без ОРМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 10:42 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
llemingсравнивать надо, но зачем сравнивать несохраненную сущность с другой сущностью смысла нет особого. Код пишется по принципу "меньше знаешь- крепче спишь". Поэтому код бизнес-логики может не знать, что за объект ему передан, откуда он, сохранён ли он. Банально- оператор редактирует некий сложный объект в памяти. До попытки сохранить ему надо сказать, можно ли его будет сохранить. Для этого надо лезть в БД (иногда код реально такой, что крыша едет- бизнес, блин, требования). Но редактируемый объект надо исключить из выборки. Если есть ID- всё просто. Если нет- уже надо на null проверку лишнюю ставить- а это лишние проблемы. llemingВсе сущности меняют ID внезапно(метод setID ведь есть) если только ID вы не генерируете на уровне app и не передаете в конструктор. Я за суррогатный ключ всегда и везде. Как результат- ID никогда не меняется. А присвоение ID- как уже сказал- лучше делать сразу после создания, вызвав метод (который сам бегает в последовательность БД, а в дальнейшем- ещё и кэширует значения, чтобы БД не грузить, беря оттуда по 10 штук, к примеру). А метод setId у меня всегда проверяет, что id был null (ну или 0, если long), а если не так- RuntimeException по рукам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 11:47 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
Alexey TominЕсли есть ID- всё просто. Если нет- уже надо на null проверку лишнюю ставить- а это лишние проблемы. Что спорить? Лучше быть богатым и здоровым. Только бывает код и на клиенте JS. Когда ID'a ещё нет. И после строки Create Object - тоже его нет. Короче аффтар - будет конкретная проблема - пиши)). Кода нет - ответ стандартный: - хорошо бы ID пораньше и отсутствие твоего параллельного свинг-приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 12:08 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
Petro123, спасибо, будем работать дальше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 12:13 |
|
||
|
hibernate_sequence + spring jdbc
|
|||
|---|---|---|---|
|
#18+
Alexey TominЯ за суррогатный ключ всегда и везде. Как результат- ID никогда не меняется. А присвоение ID- как уже сказал- лучше делать сразу после создания, вызвав метод (который сам бегает в последовательность БД, а в дальнейшем- ещё и кэширует значения, чтобы БД не грузить, беря оттуда по 10 штук, к примеру). А метод setId у меня всегда проверяет, что id был null (ну или 0, если long), а если не так- RuntimeException по рукам. ты шурупы тоже молотком вкручиваешь? нахрена вот эта ересь про "везде и всегда"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2015, 13:13 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38965044&tid=2125386]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
504ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 827ms |

| 0 / 0 |
