Для index() требуется QueryKeyExpression с CollectionMapping, который имеет ненулевой столбец порядка списка

У меня есть две сущности: одна сохраняет основные данные, связанные с делом, а другая сохраняет все обновления для определенного случая.

@Entity(name = "Case")
@EntityListeners(AuditingEntityListener.class)
@NamedQueries({
public class Case extends AbstractAuditableEntity implements Serializable {

    @Column(nullable = false)
    private Long referenceId; 

    @ManyToOne(optional = false)
    private Incident Incident;

    @OneToMany(targetEntity = CaseUpdate.class, orphanRemoval = true, cascade = CascadeType.ALL, mappedBy = "case")
    @JoinColumn(name="case", nullable = false)
    @OrderBy("created desc")
    private List<CaseUpdate> caseUpdates = new ArrayList<CaseUpdate>();

Другой класс с отношением ManyToOne выглядит следующим образом

@Entity(name = "CaseUpdate")
@EntityListeners(AuditingEntityListener.class)

public class CaseUpdate extends AbstractAuditableEntity implements Serializable {

    public CaseUpdate() {
    }

    @Id
    @GeneratedValue
    private Long id;

    @Column
    private String status;

    @Column(nullable = false)
    private String type;

    @Column(columnDefinition = "TEXT")
    private String description;

    @Column(name = "created",nullable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date created;

    @Column
    @Temporal(TemporalType.DATE)
    private Date restoreDate;

    @Column
    @Temporal(TemporalType.DATE)
    private Date responseDate;

    @Column
    @Temporal(TemporalType.DATE)
    private Date commitmentDate;

    @JoinColumn(name="caseUpdates")
    @ManyToOne(optional = false)
    private Case case;

Я пытаюсь найти таблицы Case и CaseUpdate, используя BooleanExpression для построения запросов. Когда он пытается найти, я получаю исключение

Вызывается: org.eclipse.persistence.exceptions.QueryException: Exception Description: index() требует выражения QueryKeyExpression с CollectionMapping, которое имеет ненулевой столбец порядка списка. [org.eclipse.persistence.mappings.OneToManyMapping[caseUpdates]] in не соответствует этому условию в [ Query Key caseUpdates Base au.net.iinet.fms.data.entities.Case] ​​Запрос: ReportQuery(referenceClass=Case jpql=) "select count(case) from Case case left join case.caseUpdates as case_caseUpdates_0 where index(case_caseUpdates_0) = ?1 and case.faultIncident.faultDomain = ?2 and case_caseUpdates_0.status = ?3")

Следующий код используется для создания критериев поиска

    BooleanExpression overallCriteria = null;
if (params.getStatus() != null && !params.getStatus().isEmpty()) {
      overallCriteria  = QCase.case.caseUpdates.get(0).status.eq(params.getStatus());
    }

Класс QCase генерируется с использованием Querydsl. Я не уверен, что означает это исключение и как это исправить, какие-либо идеи?

0 ответов

Другие вопросы по тегам