如何从@query批注中定义的插入查询中获取返回值

时间:2018-08-07 09:27:50

标签: postgresql spring-boot spring-data-jpa

我有两个表city和shape,其中city具有复合主键as(城市和国家/地区)和一个自动生成的ID值。此ID是Shape的外键。 因此,在城市表中插入数据后,我希望将要插入的ID用于形状表中。我已经将Spring Boot与jpa和postgres一起使用

在CityRepository中,我有自定义保存方法,该方法在冲突时不会执行任何操作。

我尝试下面的代码来获取返回值。但是我得到了错误 SqlExceptionHelper:如果没有预期结果,则返回结果。

如何从插入查询中获取返回值?

@Modifying
@Query(value="insert into public.city_info(city, country) values(:city,:country) on conflict do nothing returning city_id",nativeQuery = true)
@Transactional
Integer save(@Param("city")String city,@Param("country") String country);

1 个答案:

答案 0 :(得分:0)

我担心,但是使用JPA无法做到这一点。

如果您查看JPA查询API:

int executeUpdate()

Execute an update or delete statement.

Returns: the number of entities updated or deleted

没有其他可能的返回值。