Comments 11
Всё это выглядит очень здорово и красиво, но как быть, если объём данных большой или данные часто изменяются? Если работа с БД ведётся не только через Hibernate? Не говоря уже о том, что кто-то может влезть и руками поправить данные. Имхо, надёжнее будет сделать через триггеры, хотя переносимость при этом и пострадает.
+1
С первой частью утверждения согласен. Да и вообще настройка этого envers выглядит как колдовство. Но триггеры не лучшая альтернатива. Я бы сделал все на message queue. Произошло событие — кинул соответствующее сообщение.
0
Лучше всего использовать для ловли событий аспекты, а дальше что в коде напишете то и будет.
0
На мой взгляд аспекты еще большее колдовство, усложняется как логика, так и отладка приложения.
0
Можно и аспекты использовать, наверное. Правда я не очень представляю как :) Вот к примеру:
private EventBus eventBus;
public void doSomething() {
…
Order order = createOrder();
eventBus.raiseEvent(Events.orderCreated(order));
…
}
Где EventBus интерфейс.
С аспектами как-то сложнее. Наверное придется завязаться на возвращаемое значение метода. Как-то так:
@Raise(OrderCreated.class)
public Order createOrder() {
}
private EventBus eventBus;
public void doSomething() {
…
Order order = createOrder();
eventBus.raiseEvent(Events.orderCreated(order));
…
}
Где EventBus интерфейс.
С аспектами как-то сложнее. Наверное придется завязаться на возвращаемое значение метода. Как-то так:
@Raise(OrderCreated.class)
public Order createOrder() {
}
0
Используйте аспекты. Они позволяют делать не только аудит, а все что угодно :)
0
Во многих промышленных СУБД механизмы трекинга и аудита уже встроены.
А вообще я не нашел упоминаний можно ли писать аудит в другую базу (ее ведь проще обслуживать будет, да и скорость основной базы не будет так сильно страдать)…
А вообще я не нашел упоминаний можно ли писать аудит в другую базу (ее ведь проще обслуживать будет, да и скорость основной базы не будет так сильно страдать)…
0
Интересно. А что будет добавляться в аудит, если запись убирается?
+1
Sign up to leave a comment.
Hibernate Envers: аудирование операций