Мы реализовали наши репозитории точно так, как показано в документации Spring Data. Все было хорошо, пока мы не обновились с STS 2.9 до STS 3.1. Все попытки избавиться от этих ошибок не увенчались успехом, а в некоторых случаях даже не имеют смысла! Они не соответствуют никаким свойствам ни в интерфейсе, ни в используемых сущностях!
Вот пример:
public interface CreditNotesRepository extends JpaRepository<CreditNotes, Long> {
CreditNotes findCurrentCreditNotes(Long shipmentDetailId);
}
findCurrentCreditNotes
— это именованный запрос в нашей сущности. Этот код работает отлично.
@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)")
})
И получаем ошибку:
Invalid derived query! No property find found for type ca.cole.freight.model.CreditNotes
Хотя это просто флаг (не влияет на компиляцию), он раздражает и сбивает с толку. Может кто-нибудь пролить некоторый свет на это? И объясните мне это, как будто мне 6 лет! ;)