Я пытаюсь написать запрос, используя select max
& where
с @Query
Следующее не будет работать, как я могу это исправить?
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
@Repository
interface IntermediateInvoiceRepository extends JpaRepository<Invoice, String> {
@Query("SELECT max(i.sequence) " +
"FROM Invoice as i " +
"WHERE i.fleetId = :fleetId" +
" AND i.sequence IS NOT NULL")
Long findMaxSequence(@Param("fleetId") String fleetId);
}
Я столкнулся с другим ответом, но он явно использует менеджер сущностей, но он не тот же
Как мне написать запрос MAX с предложением where в JPA 2.0?
ошибка:
2018-09-14T09:27:57,180Z [main] ERROR o.s.boot.SpringApplication - Application startup failed
org.springframework.data.mapping.PropertyReferenceException: No property findMaxSequence found for type Invoice!
класс счета (упрощенный для краткости):
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Table(name = "invoices", indexes = {
@Index(name = "IDX_FLEET", columnList = "fleetId", unique = false)
,
@Index(name = "IDX_USERSSS", columnList = "userId", unique = false)
,
@Index(name = "IDX_TIME", columnList = "invoiceDate", unique = false)
,
@Index(name = "IDX_SEQUENCE", columnList = "sequence", unique = false)
})
@JsonIgnoreProperties(ignoreUnknown = true)
public class Invoice implements Serializable {
private static final long serialVersionUID = 1L;
@GeneratedValue(generator = "uuid")
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Column(columnDefinition = "CHAR(36)")
@Id
private String id;
@Column
private long sequence;
...
Обновление:
возможно, есть обходной путь с findOne с сортировкой DESC для столбца последовательности?
@ Query ("SELECT i.sequence" + "FROM Invoice as i" + "WHERE i.fleetId =: fleetId" + "ORDER BY i.sequence DESC") Long getMaxSequence (@Param ("fleetId") String fleetId);
Но мне нужно каким-то образом ОГРАНИЧИТЬ набор результатов до 1
Обновление 2:
исправил import org.springframework.data.jpa.repository.Query;
все еще вошибка