我在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"');
它不会被删除。原因是什么?
答案 0 :(得分:1)
最后我找到了答案。我不知道为什么,但春天将所有的路径字符串包装成双引号,为了解决这个问题,你应该按照carWashRepository.updateImage(newImage.getAbsolutePath().replace("\\", "/"), carWash.getId());
进行操作