@Repository
public interface StockRepo extends JpaRepository<Stock, Long> {

    @Query("SELECT stock " +
            "FROM Stock stock " +
            "WHERE stock.name = :name AND stock.date = :date AND stock.id != :id")
    Optional<Stock> findByStockUpdate(String name, LocalDate date, Long id);
}

Entonces, con este repositorio, estoy recibiendo algunos errores al ejecutar la aplicación:

No se pudo resolver la propiedad: Nombre de: com.santanderdevweek.bootcamp.model.stock [seleccione de com.santanderdevweek.bootcamp.model.stock stock donde stock.name =: nombre y stock.date =: fecha y stock.id! =: id]

No se pudo resolver la propiedad: Nombre de: com.santanderdevweek.bootcamp.model.stock [seleccione de com.santanderdevweek.bootcamp.model.stock stock donde stock.name =: nombre y stock.date =: fecha y stock.id! =: id]

La validación falló por la consulta para el método Público abstracto java.util.optional com.santanderdevweek.bootcamp.repository.stockrepo.findbystockupdate (java.lang.string, java.time.localdate, java.lang.long)!

Error al crear frijol con nombre 'Stockreco' definido en com.santanderdevweek.bootcamp.repository.stockrepo se define en @enablejparepositio declarado en jparepositoriesregistrar.enablejparepositoriesconfiguración: la invocación del método de inicio falló; La excepción anidada es Java.lang.illegalArgentException: la validación falló por la consulta para el método abstracto público java.util.optional com.santanderdevweek.bootcamp.repository.stockrepo.findbystockupdate (java.lang.string, java.time.localdate, java.lang. Largo)!

Todos ellos debido a la consulta (IMO), necesitan ayuda (lo siento por una publicación larga).

0
Hugo Porfirio 29 may. 2021 a las 18:13

1 respuesta

La mejor respuesta

Como su clase de entidad no tiene el campo con el nombre "Nombre", sino 'Namestock' en su lugar.

Cambiar nombre a Namestock en consulta.

@Query("SELECT stock " +
            "FROM Stock stock " +
            "WHERE stock.nameStock = :nameStock AND stock.date = :date AND stock.id != :id")
0
Alien 29 may. 2021 a las 16:02