如何插入到spring-data的db中?

2024-02-26

我想发出一个将数据插入我的数据库的请求。该表有 4 列:ID_DOCUMENT (PK)、ID_TASK、DESCRIPTION、FILEPATH

Entity

... 
@Column(name = "ID_TASK")
private Long idTask;


@Column(name = "DESCRIPTION")
private String description;

@Column(name = "FILEPATH")
private String filepath;
...

存储库

@Modifying
@Query("insert into TaskDocumentEntity c (c.idTask, c.description, c.filepath) values (:id,:description,:filepath)")
public void insertDocumentByTaskId(@Param("id") Long id,@Param("description") String description,@Param("filepath") String filepath);

控制器

@RequestMapping(value = "/services/tasks/addDocument", method = RequestMethod.POST)
@ResponseBody
public void set(@RequestParam("idTask") Long idTask,@RequestParam("description") String description,@RequestParam("filepath") String filepath){

    //TaskDocumentEntity document = new TaskDocumentEntity();
    taskDocumentRepository.insertDocumentByTaskId(idTask,descriere,filepath);
}

当我运行测试时,我收到此错误:引起原因:org.hibernate.hql.ast.QuerySyntaxException:期待打开,在第 1 行第 32 列附近发现“c”[插入 TaskDocumentEntity c (c.idTask、c.descriere、c.filepath) 值 (:id,:描述,:文件路径)]我尝试删除别名 c,但仍然不起作用。


Spring data 提供开箱即用的功能save用于插入数据库的方法 - 无需使用@Query。看看spring Data的核心概念(http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.core-concepts http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.core-concepts)

因此在你的控制器中只需创建对象TaskDocumentEntity并将其传递到存储库

@RequestMapping(value = "/services/tasks/addDocument", method = RequestMethod.POST)
@ResponseBody
public void set(@RequestParam("idTask") Long idTask,@RequestParam("description") String description,@RequestParam("filepath") String filepath){

// assign parameters to taskDocumentEntity by constructor args or setters
        TaskDocumentEntity document = new TaskDocumentEntity(idTask,descriere,filepath);
        taskDocumentRepository.save(document);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何插入到spring-data的db中? 的相关文章

随机推荐