【发布时间】:2018-09-04 10:24:10
【问题描述】:
我想在我的 spring boot 控制器类中执行 sql 语句,而不在 jpa 存储库中定义任何方法。我要使用的语句是
SELECT UUID();
此语句与数据库相关,与特定实体无关。
如果任何人都可以提供上述语句的执行解决方案,那就太好了
- 弹簧控制器类
- jpa 存储库(如果推荐)
更新
控制器:
@Autowired
JdbcTemplate jdbcTemplate;
@RequestMapping(value = "/UUID", method = RequestMethod.GET)
public ResponseEntity<String> getUUID() {
String uuid = getUUID();
return buildGuestResponse(uuid);
}
public String getUUID(){
UUID uuid = (UUID)jdbcTemplate.queryForObject("select UUID()", UUID.class);
return uuid.toString();
}
【问题讨论】:
-
通过发布不起作用的代码来更清楚地解释
-
首先,您不应该在控制器中执行 SQL 语句。相反,您应该创建一个实现 JPA 存储库接口的服务类。
-
你完全跳过了service/dao层吗?这是不推荐的方法。
-
这个语句是什么意思是数据库相关的,不与特定实体相关联。?您不想将此 uuid 用作实体的主键吗?
-
@wafaahegazy 是的,我不想把它保存为主键
标签: java mysql spring spring-boot uuid