spring - Spring data JDBC,我可以在自定义插入查询中将返回值作为实体获取吗?
问题描述
@Repository
public interface RoomRepository extends CrudRepository<RoomEntity, Long> {
@Override
List<RoomEntity> findAll();
@Modifying
@Query("INSERT INTO room VALUES(:id, :name)")
RoomEntity insert(@Param("id") String uuid, @Param("name") String name);
}
我进行了插入自定义查询以使用 UUID 的默认键。自定义查询有没有办法将结果值作为实体接收?上面的代码不起作用。框架正在返回一个 int。
解决方案
这是直接不可能的。
一些数据库允许执行多个语句:在单个语句中在 java 中执行的多个查询
但是 Spring Data JDBC 的基础设施并没有准备好处理这种情况。
您可以通过首先插入行然后使用或类似机制分两步选择它来创建自定义方法来执行此操作。JdbcTemplate
推荐阅读
- javascript - 反应添加新的数组方法以通过它的键返回数组的对象项
- android - 我在android studio中遇到过这些错误?
- c - float cf = *(float *)&ci; 是什么意思?在C里做什么?
- environment-variables - 关于在常规组件/插件之外使用 Nuxt 的 privateRuntimeConfig 变量的问题
- sql - Vertica:如果未找到记录,则返回零
- javascript - CefSharp 运行 JavaScript
- r - 使用与绘图相同的背景颜色扩展 ggplot 的画布
- python - 实际上使用 scikit-learn 从多元多项式回归中检索多项式
- r - 为什么 R 颜色与 Powerpoint 中的吸管工具不一致?
- docker - 如何向 docker 镜像添加反向代理