Я использую Criteria API для создания динамического запроса. У меня есть сущность:
class ProcessingActivityCategory{
(...)
@OneToMany
@JoinColumn(name = "id_kategoria_czynnosci", referencedColumnName = "id")
private Set<ActivityCategory> activityCategories;
}
и пара вложенных сущностей. Я хотел бы получить только эти ProcessingActivityCategory.activityCategories, которые отвечают следующим требованиям:
ProcessingActivityCategory.activityCategories.processActivity.personalData.company.id=x
and ProcessingActivityCategory.activityCategories.processActivity.personalData.administrator.id=y
Ниже мои энтузиасты. Как использовать @Filter и @FilterDef для достижения этой цели? В каком месте / уровне я должен это использовать? Для собственности
ProcessingActivityCategory.activityCategories? Но как это место углубится и создаст условия?
ActivityCategory:
@Entity
@Table(schema = "odo", name = "odo_czynnosc_kategoria")
public class ActivityCategory extends BaseEntity {
@OneToOne
@JoinColumn(name = "id_czynnosc", referencedColumnName = "id")
private ProcessingActivity processActivity;
(...)
ProcessingActivity:
Data
@Entity
@Table(schema = "odo", name = "odo_czynnosc_przetwarzania")
public class ProcessingActivity extends BaseEntity {
@OneToOne
@JoinColumn(name = "id_zbior", referencedColumnName = "id")
private PersonalData personalData;
(...)
PersonalData:
Entity
@Table(schema = "odo", name = "odo_zbior")
@Data
public class PersonalData extends NameDescriptionEntity {
@OneToOne
@JoinColumn(name = "id_zbior_spolka", referencedColumnName = "id")
private Company company;
@OneToOne
@JoinColumn(name = "id_zbior_rodzaj", referencedColumnName = "id")
private DataKind dataKind;
@Column(name = "uwagi")
private String comments;
@OneToOne
@JoinColumn(name = "id_zbior_administrator", referencedColumnName = "id")
private Company administrator;
Компания:
@Entity
@Data
@Table(schema = "odo", name = "d_odo_spolka")
public class Company{
private Long id
(...)