|
|
|
Hibernate и счетчики
|
|||
|---|---|---|---|
|
#18+
Есть таблицы: USER ID NAME POSTS POST ID USER_ID NAME В таблице USER поле POSTS = SELECT count(*) FROM POST WHERE USER_ID = X. Нужна сортировка по этому полю поэтому нарушена нормальность. Подскажите как обновлять поле POSTS при добавлении или удалении постов. Есть ли в hibernate инструменты для этого. Или это лучше вообще делать на уровне БД триггерами? Просто пока думаю в методы save() и delete() добавить пересчет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2015, 13:59 |
|
||
|
Hibernate и счетчики
|
|||
|---|---|---|---|
|
#18+
23r9, - в хибере есть вычисляемое поле - можно триггером - можно создать view над табличкой Вам виднее как лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2015, 14:34 |
|
||
|
Hibernate и счетчики
|
|||
|---|---|---|---|
|
#18+
Petro123, автор- в хибере есть вычисляемое поле Имеете ввиду @Formula? Она ведь вроде как не записывает а просто запрос выполняет. А что насчет триггера. Какие вообще могут возникнуть проблемы. Просто если программно обновлять счетчик то нужно будет каждый метод сохранения/удаления переписывать. А с триггером вроде все просто, только я никогда не сталкивался с их использованием в реальных проектах. автор- можно создать view над табличкой С view вообще не сталкивался. Как я понимаю он нужен чтобы нормальность сохранить? И еще принцип такой же как у @Formula? Пошел читать про view. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2015, 17:12 |
|
||
|
Hibernate и счетчики
|
|||
|---|---|---|---|
|
#18+
23r9Как я понимаю он нужен чтобы нормальность сохранить? да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2015, 17:21 |
|
||
|
Hibernate и счетчики
|
|||
|---|---|---|---|
|
#18+
23r9, Можно, например, реализовать интерфейс org.hibernate.Interceptor, написав соответствующий код в методах onXXX. Далее цепляем его в конфиг, и имеем аналог триггера, только с большими возможностями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2015, 18:14 |
|
||
|
Hibernate и счетчики
|
|||
|---|---|---|---|
|
#18+
ivanra, а можно ли Interceptor прицепить к конкретной таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 18:57 |
|
||
|
Hibernate и счетчики
|
|||
|---|---|---|---|
|
#18+
DDiver, точно, там же entity в качестве аргумента метода. Спасибо всем за помощь. Почитал еще что можно Listeners использовать. Код: java 1. 2. 3. 4. 5. 6. Код: java 1. 2. 3. 4. 5. 6. 7. Красивое решение с аннотациями. Мне очень понравилось но не работает с hibernate session. А хотелось бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 23:00 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=143&tid=2125913]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 371ms |

| 0 / 0 |
