Объект Pointcut загружает/сохраняет действия JPA?

Я хотел бы обернуть/развернуть свой объект каждый раз, когда он загружается или сохраняется. Я узнал, что не могу сделать это с помощью прослушивателей JPA, поскольку они могут выполнять действие только над объектом, а не обмениваться им с другим. Естественным решением было бы использование Аспекта. Но есть ли особые методы, которые я могу указать? Дело в том, что сущность, которую нужно обернуть/развернуть, может быть полем другой сущности...

РЕДАКТИРОВАТЬ:

Я обнаружил, что вы не можете сделать это с помощью Spring AOP, потому что EntityManager не управляется Spring (почему?) - см. здесь. Чтобы заставить его работать, мне пришлось бы явно определить bean-компонент EntityManager, но это не рекомендуется в этом посте - опять же, почему? Как это сделать? С другой стороны, почему они заявляют, что созданный EntityManager управляется приложением? См. документацию по Spring API.


person kboom    schedule 01.02.2014    source источник


Ответы (1)


Попробуйте указать геттеры и сеттеры, которые используют класс сущности. Методы, которые извлекают объекты из EntityManager, лучший способ добиться этого — создать новую аннотацию и поместить все методы, которые могут получить экземпляр для этого класса, а затем использовать точку поддержки @annotation:

@annotation — ограничивает сопоставление точками соединения, где субъект точки соединения (метод, выполняемый в Spring AOP) имеет заданную аннотацию.

Также, чтобы получить модифицирующий объект, вы можете сделать что-то вроде этого.

Получить аргументы метода с помощью spring aop?

Иногда вам нужен доступ в теле совета к фактическому значению, которое было возвращено. Вы можете использовать форму @AfterReturning, которая связывает возвращаемое значение

person Koitoer    schedule 02.02.2014
comment
Это был мой первоначальный подход. Проблема в том, что объект отображается внутри объекта, в который он вложен. Более того, я думаю, что вы не можете сделать это с помощью Spring AOP, потому что он работает только с управляемыми компонентами... - person kboom; 02.02.2014