【发布时间】:2018-07-09 15:43:44
【问题描述】:
我尝试使用句柄查询来更新SQL 数据库中的表。
代码:
@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
);
}
producer 实体的所有参数都正确,producerRepository.save(producer) 运行良好。
(我也在控制台 name 和 id 字段中 - 好吧)
所以,我可以将producer 保存在数据库中,但是,当我尝试使用update() 方法时出现错误。
无法使用 executeQuery() 发出数据操作语句
PS
控制台中的sql查询也很好用
(UPDATE producer SET producer_name = 'some name' WHERE id = ....)
应该注意,存储库中的其他 SQL 原生查询可以正常工作。所以spring/hibernate/jdbc设置是正确的。
【问题讨论】:
标签: java mysql spring spring-jdbc