Мне нужно искать записи для TableA на основе значений в @ElementCollection внутри TableB. Это текущая структура после самого последнего рефакторинга (я буду игнорировать избыточный код):
@Entity
public class TableA {
@Id
public Long id;
}
@Entity
public class TableB {
@Id
public Long id
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "tableA_assignment", joinColumns = @JoinColumn(name = "tableB_id"))
private List<TableAAssignment> enpAssignments = new ArrayList<>();
}
@Embeddable
public class TableAAssignment {
@NotNull
@OneToOne
private TableA tableA;
До рефакторинга у нас была следующая структура таблицы A:
@Entity
public class TableA {
@Id
public Long id;
@ManyToMany(mappedBy = "tableas")
private Set<TableB> tableBs = new HashSet<>();
}
и используя r sql -parser мы смогли сделать что-то вроде этого: search=tableBs=isempty=false;status=='ACCEPTED'&page=0&size=20
где =isempty=
- наш пользовательский оператор.
Но теперь RsqlParser не может создать правильную спецификацию из-за отсутствия свойства tableBs
. Мы не можем удалить этот фильтр из рабочей среды, но вынуждены отделить TableA от собственного лога c, поскольку он поступает из внешнего источника.