Как переопределить спящий фильтр JPA на унаследованном классе? - PullRequest
0 голосов
/ 23 октября 2018

Я использую спящий JPA.

У меня есть класс BasePersonnel в качестве суперкласса, который имеет filter:

@Entity
@Table(name = "APP_PERSONEL")
@Filters({
    @Filter(name = "authorize", 
            condition = " 1 = 1 ")
})
public class BasePersonel extends BaseEntity<Integer> {
    ...
}

, и у него есть дочерний класс:

@Entity
@Table(name = "RTS_PERSONNEL")
@Filters({
    @Filter(name = "authorize",
            condition = " 2 = 2 ")
})
public class Personnel extends BasePersonel {
    ...
}

Когда я запускаю запрос к классу Personnel, используя hql, оба фильтра (то есть фильтр суперкласса и фильтр дочернего класса) добавляются к предложению where.Но я хочу, чтобы только фильтр дочерних классов добавлялся к предложению where.

Есть ли какое-либо решение переопределить фильтр суперкласса?

1 Ответ

0 голосов
/ 19 ноября 2018

Вы можете использовать @Subselect при сопоставлении сущности.

@Entity
@Subselect("select * from APP_PERSONEL where authorize = 1")
public class BasePersonel extends BaseEntity<Integer> {
    ...
}

Ознакомьтесь с этой статьей для получения более подробной информации .

...