У нас есть такая модель сущности (несвязанные поля для краткости опущены):
@Entity
public class Invoice {
//The other portion of the sum that is invoiced from another payer.
@OneToOne(mappedBy = "parentInvoice", cascade = CascadeType.ALL)
private Invoice otherPayersInvoice;
//The patient's invoice, which is the parent of this other payer's invoice.
@OneToOne(cascade = CascadeType.ALL)
private Invoice parentInvoice;
@ManyToOne
private Payer payer;
}
Итак, в основном мы разделим накладные на части и сохраним отношения внутри сущностей.
Следующий запрос работает и возвращает все счета по payerId:
SELECT i FROM Invoice i WHERE i.payer.id = :payerId
Однако, когда я расширяю запрос, чтобы также перечислить все «дочерние» счета-фактуры, которые может иметь плательщик (счета-фактуры от другого плательщика), я вообще не получаю никаких результатов и никаких ошибок или предупреждений.
SELECT i FROM Invoice i WHERE i.payer.id = :payerId OR
(i.parentInvoice IS NOT NULL AND i.parentInvoice.payer.id = :payerId)
В чем может быть проблема здесь?