Trato de usar consulta asa para actualizar la tabla en la SQL
base de datos.
Código:
@Autowired
private ProducerRepository producerRepository;
public void update(Producer producer){
String name = producer.getProducerName();
long id = producer.getId();
// producerRepository.save(producer); //this method works well.
producerRepository.update(name, id); //handle attempt - throws exeption in this string
}
ProducerRepository:
@Repository
public interface ProducerRepository extends JpaRepository<Producer, Long>{
@Query(nativeQuery = true, value = "UPDATE producer SET producer_name = :pName WHERE id = :id")
Producer update(
@Param("pName") String pName,
@Param("id") long id
);
}
Todos los parámetros de la producer
entidad son correctos y producerRepository.save(producer)
funciona bien. (También en la consola name
y id
campos - todo bien)
Por lo tanto, puedo guardar producer
en la base de datos, pero, cuando intento utilizar update()
el método consigo el error.
No se puede emitir sentencias de manipulación de datos con executeQuery ()
PD
consulta SQL en la consola también funciona bien
(UPDATE producer SET producer_name = 'some name' WHERE id = ....)
Cabe señalar que las consultas SQL nativas otra en el trabajo repositorio correctamente. Por lo que los / Hibernate / JDBC ajuste de amortiguación que son correctas.
Uso de anotación @Modifying
.
Esto hará que la consulta anotadas, en el método como la consulta de actualización en lugar de una selección.
Desde 2.2.6 Modificación de consultas https://docs.spring.io/spring-data/jpa/docs/1.3.4.RELEASE/reference/html/jpa.repositories.html