powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate и счетчики
8 сообщений из 8, страница 1 из 1
Hibernate и счетчики
    #38857525
23r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблицы:

USER
ID
NAME
POSTS

POST
ID
USER_ID
NAME

В таблице USER поле POSTS = SELECT count(*) FROM POST WHERE USER_ID = X. Нужна сортировка по этому полю поэтому нарушена нормальность.

Подскажите как обновлять поле POSTS при добавлении или удалении постов. Есть ли в hibernate инструменты для этого. Или это лучше вообще делать на уровне БД триггерами?

Просто пока думаю в методы save() и delete() добавить пересчет.
...
Рейтинг: 0 / 0
Hibernate и счетчики
    #38857574
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23r9,
- в хибере есть вычисляемое поле
- можно триггером
- можно создать view над табличкой
Вам виднее как лучше.
...
Рейтинг: 0 / 0
Hibernate и счетчики
    #38857779
23r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

автор- в хибере есть вычисляемое поле
Имеете ввиду @Formula? Она ведь вроде как не записывает а просто запрос выполняет.

А что насчет триггера. Какие вообще могут возникнуть проблемы. Просто если программно обновлять счетчик то нужно будет каждый метод сохранения/удаления переписывать. А с триггером вроде все просто, только я никогда не сталкивался с их использованием в реальных проектах.

автор- можно создать view над табличкой
С view вообще не сталкивался. Как я понимаю он нужен чтобы нормальность сохранить? И еще принцип такой же как у @Formula? Пошел читать про view.
...
Рейтинг: 0 / 0
Hibernate и счетчики
    #38857801
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23r9Как я понимаю он нужен чтобы нормальность сохранить?
да.
...
Рейтинг: 0 / 0
Hibernate и счетчики
    #38857808
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
23r9,
Можно, например, реализовать интерфейс org.hibernate.Interceptor, написав соответствующий код в методах onXXX.
Далее цепляем его в конфиг, и имеем аналог триггера, только с большими возможностями
...
Рейтинг: 0 / 0
Hibernate и счетчики
    #38858848
23r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivanra, а можно ли Interceptor прицепить к конкретной таблице?
...
Рейтинг: 0 / 0
Hibernate и счетчики
    #38858922
DDiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Hibernate и счетчики
    #38859009
23r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DDiver, точно, там же entity в качестве аргумента метода. Спасибо всем за помощь.

Почитал еще что можно Listeners использовать.

Код: java
1.
2.
3.
4.
5.
6.
@javax.persistence.Entity
@Table(name="PAGES")
@EntityListeners(PageEventListener.class)
public class Page implements Entity<Long>{
    //...
}



Код: java
1.
2.
3.
4.
5.
6.
7.
public class PageEventListener {
    @PreUpdate
    @PrePersist
    public void setModificationDate(Page page) {
        page.setModificationDate(new Date());
    }
}



Красивое решение с аннотациями. Мне очень понравилось но не работает с hibernate session. А хотелось бы.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate и счетчики
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]