У меня есть 3 класса:Hibernate enableFilter не работает при загрузке объект по идентификатору
Event
PublicEvent extends Event
PersonalEvent extends Event
мое отображение файла спящего режима является нечто вроде приведенных ниже. Я хочу добавить один фильтр для PersonalEvent
, и перед загрузкой этого объекта я был включен этот фильтр. но это не работает. моя версия спящего режима - 4.3.11.Final
.
Event.hbm.xml
<hibernate-mapping>
<class name="org.calendar.Event">
...
<filter name="personalEventAuthorize" condition="person_ID = :personId" />
</class>
<joined-subclass name="org.calendar.PersonalEvent" extends="org.calendar.Event">
<key column="id" property-ref="id" />
...
<many-to-one name="person" column="person_ID" entity-name="org.person.Person" />
</joined-subclass>
<joined-subclass name="org.calendar.PublicEvent" extends="org.calendar.Event">
<key column="id" property-ref="id" />
...
</joined-subclass>
<filter-def name="personEventAuthorize">
<filter-param name="personId" type="integer" />
</filter-def>
</hibernate-mapping>
PersonalEventRepository
@Override
public PersonalEvent load(Long id) {
Filter filter = getSession().enableFilter("personEventAuthorize");
filter.setParameter("personId", getAuthenticatedPersonId());
return super.loadById(id);
}
зимуют генерируется SQL-запрос без моего фильтра. в чем моя проблема? почему hibernate не может включить фильтр для объединенного подкласса? благодарит для всех ...
спасибо за повтор. в настоящее время я использую этот подход. –
эта проблема кажется просто существует в 'join-subclass' ..! –