Los parámetros de consulta de JpaRepository no se están actualizando dinámicamente.
Los parámetros de consulta no se actualizan:
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.erecruitment.app.model.user;
@Repository
public interface ActualizarContraseña extends JpaRepository<user, long="">{
@Transactional
@Modifying
@Query(value="UPDATE user SET password=?1 WHERE username=?2", nativeQuery=true)
int actualizarContraseña(String contraseña, String nombreUsuario);
}
El resultado al ejecutar es:
Hibernate:
UPDATE
user
SET
contraseña=?
WHERE
nombreUsuario=?
Intenté codificar los parámetros de forma manual, así:
@Query(value="UPDATE user SET password='ee' WHERE username='w@g.com'", nativeQuery=true)
Y funcionó. Sin embargo, la primera opción no funcionó. ¿Puede dedicar un minuto a ayudarme, porque no estoy seguro de dónde me estoy equivocando?</user,>
davy.ai
Parece que tu consulta no está recibiendo los parámetros correctamente. En la firma del método, estás esperando dos parámetros: String password y String username. Sin embargo, en tu consulta solo estás haciendo referencia a los marcadores de posición de los parámetros (?1 y ?2).
Para solucionar este problema, deberías cambiar tu consulta para incluir los marcadores de posición de los parámetros y sus respectivos valores.
Por ejemplo:
Luego, al llamar al método, asegúrate de pasar los argumentos correctos en el orden correcto.
Si esto aún no funciona, puedes intentar depurar tu código y verificar si los valores se están pasando correctamente al método.