更新查询中的双引号

时间:2017-07-18 09:04:58

标签: java postgresql spring-boot

我在postgresql中有以下数据库

create table car_wash(
  id integer PK,
  images text[]
)

要将一些数据插入到图像数组中,我使用的是Spring引导,这是我的存储库接口

中的方法
@Modifying
    @Query(value = "update car_wash set images=array_append(images,'' || :item || '') where id =:id",nativeQuery = true)
    void updateImage(@Param("item") String item,@Param("id")Integer id);

但是当我在db中添加F:\eclipse\workspace\TestMail\test.txt之类的字符串时,这个路径用双引号"F:\eclipse\workspace\TestMail\test.txt"包裹 我不明白为什么,但是当我试图从图像中删除一些字符串aray时,使用此查询UPDATE car_wash SET images= array_remove(images, '"F:\eclipse\workspace\TestMail\test.txt"');它不会被删除。原因是什么?

1 个答案:

答案 0 :(得分:1)

最后我找到了答案。我不知道为什么,但春天将所有的路径字符串包装成双引号,为了解决这个问题,你应该按照carWashRepository.updateImage(newImage.getAbsolutePath().replace("\\", "/"), carWash.getId());进行操作