java - 使用没有返回类型的 javax.ws.rs api 执行查询
问题描述
我希望执行查询
SET SQL_SAFE_UPDATES = 0 ;
我通常为获取请求做什么
public void setSafeMode() {
Client client = ClientBuilder.newClient();
Response response = client.target(URI.contextPathUI + "/api/orderbook/safeMode").request().get();
}
在后端控制器
@GetMapping("/orderbook/safeMode")
private void setSafeMode() {
orderBookRepository.setSafeMode();
}
@Repository
public interface OrderbookRepository extends JpaRepository<Orderbook, Integer>, JpaSpecificationExecutor {
@Query(value="SET SQL_SAFE_UPDATES = 0 ; ", nativeQuery = true)
void setSafeMode();
}
我知道它不应该是一个获取请求,但我们在这个 api 中没有执行方法。我希望运行这个 get 请求并返回一个 void。它给出了一个错误
"message": "could not execute query; nested exception is org.hibernate.exception.GenericJDBCException: could not execute query"
我想知道如何执行一个不返回任何内容的简单查询,并且我不必传递实体或其他任何内容(不像我必须在 PUT 或 POST 查询中传递),因为它不合逻辑。此查询不需要任何外部输入,只需重建一个表并将其插入另一个表即可。
解决方案
它通过将 @Modifying 和 @Transactional 注释添加到存储库方法来工作
@Modifying
@Transactional
@Query(value = "SET SQL_SAFE_UPDATES = 0;", nativeQuery = true)
void setSafeMode();**strong text**
了解更多信息的重要链接
推荐阅读
- reactjs - 盖茨比不显示 Office UI Fabric React 图标
- javascript - 达到最大长度时在多个输入中导航
- python - 如何向数据集添加新列
- c# - 在无限循环中通过 C# 调用的 Python 不返回值
- amazon-s3 - AWS Athena 表数据更新
- python - 为什么 Keras CNN 中每个输入滤波器都有一组参数?
- sql - 在 SQL Server 中计算表中的 Null 并按列名分组
- google-cast - TextTracks not working when VMAP module is enabled
- .net - Opening and closing braces issue
- jquery - 我在 jquery ajax 中有一个脚本并且不工作如何修复错误