2012-04-04 2 views
1

мне нужно использовать @AdditionalCriteria аннотацию для моих сущностей, чтобы изолировать данные в зависимости от зарегистрированного пользователя «userPrinicpal»Spring EclipseLink Динамическая сессия свойство

Я добавил следующее для каждого объекта:

@AdditionalCriteria("this.owner = :owner") 

в Проблема заключается в следующем: я не знаю, как сопоставить параметр владельца с текущим зарегистрированным пользователем, я попытался сопоставить его с помощью SessionCustomizer, но я понял, что SessionCustomizer выполняется во время запуска приложения, а не для каждого сеанса.

У кого-нибудь есть идея о том, как этого достичь?

Уважением, Рази

ответ

0

Пробовали ли вы,

em.setProperty ("владелец", theOwner)

Вы также можете передать свойство "владельца" в вашей единицы сохранения свойств, или установите его на ЭДС.

+0

Я знаю, что могу создать это, но это значит, что мне нужно установить это свойство в каждом классе DAO «@Repository», и даже больше, мне нужно установить его в каждом методе классов DAO, потому что эти классы инициализируются в запуск приложения, правильно? –

+1

Спасибо @James. Я закончил создание класса SessionEventListener и добавил свойство eclipselink.session-event-listener в конфигурацию emf bean. он отлично работает. но все же он выполнялся перед каждым оператором sql, потому что я использовал функцию postAcquireConnection. есть ли способ сказать spring или eclipselink не освобождать соединение после каждого заявления sql? –

Смежные вопросы