Abbiamo implementato i nostri repository esattamente come dimostrato nella documentazione Spring Data. Tutto andava bene fino all'aggiornamento da STS 2.9 a STS 3.1. Tutti i tentativi di far scomparire questi errori sono falliti e in alcuni casi non hanno nemmeno senso! Non corrispondono a nessuna proprietà nell'interfaccia o nelle entità utilizzate!Ottieni l'errore "Query derivata non valida" dappertutto nelle nostre interfacce Spring Data JpaRepository in STS 3.1
Ecco un esempio:
public interface CreditNotesRepository extends JpaRepository<CreditNotes, Long> {
CreditNotes findCurrentCreditNotes(Long shipmentDetailId);
}
Il findCurrentCreditNotes
è una query denominata nel nostro organismo. Questo codice viene eseguito perfettamente.
@NamedQueries({
@NamedQuery(name = "CreditNotes.getCount", query = "SELECT COUNT(f) FROM CreditNotes f"),
@NamedQuery(name = "CreditNotes.findCurrentCreditNotes", query =
"SELECT creditNotes FROM CreditNotes creditNotes"
+ " WHERE creditNotes.shipmentDetail.shipmentDetailId = ?1 "
+ " AND creditNotes.notesSeqNumber = (SELECT max(creditNotes2.notesSeqNumber) FROM CreditNotes creditNotes2"
+ " WHERE creditNotes.shipmentDetail.shipmentDetailId = creditNotes2.shipmentDetail.shipmentDetailId)")
})
E l'errore otteniamo:
Invalid derived query! No property find found for type ca.cole.freight.model.CreditNotes
Anche se questa è solo una bandiera (non influenza la compilazione), è fastidioso e confuso. Qualcuno può far luce su questo? E spiegamelo come se avessi 6 anni! ;)
Si verifica anche in STS 3.6.3.RELEASE –
E ancora in 3.7 – Kai
E ancora in 3.8 – Jagger