相关疑难解决方法(0)

如何使用JPA Query将数据插入db?

我的预备语句有问题,但我无法弄清楚错误的位置.我试图将URI链接插入数据库.

 @Repository
 public interface LoggerDao extends CrudRepository<Logger, Long> {
 @Query("select t from Logger t where t.user.id=?#{principal.id}")
 List<Logger> findAll();

@Modifying
@Query(value = "insert into Logger t (t.redirect, t.user.id) VALUES (:insertLink,?#{principal.id})", nativeQuery = true)
@Transactional
void logURI(@Param("insertLink") String insertLink);
Run Code Online (Sandbox Code Playgroud)

错误

    2017-03-11 19:52:59.157  WARN 65154 --- [nio-8080-exec-8] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 42001, SQLState: 42001
2017-03-11 19:52:59.157 ERROR 65154 --- [nio-8080-exec-8] o.h.engine.jdbc.spi.SqlExceptionHelper   : Syntax error in SQL statement "INSERT INTO LOGGER T[*] (T.REDIRECT, T.USER.ID) VALUES (?,?) "; expected "., (, DIRECT, SORTED, DEFAULT, VALUES, …
Run Code Online (Sandbox Code Playgroud)

java sql spring-data-jpa spring-boot

10
推荐指数
1
解决办法
3万
查看次数

如何在spring-data中插入db?

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

实体

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


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

@Column(name = "FILEPATH")
private String filepath;
...
Run Code Online (Sandbox Code Playgroud)

知识库

@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);
Run Code Online (Sandbox Code Playgroud)

调节器

@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);
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的测试时,我收到此错误: 引起:org.hibernate.hql.ast.QuerySyntaxException:期待OPEN,在第1行第32列附近找到'c'[插入TaskDocumentEntity c(c.idTask,c.descriere) ,c.filepath)values(:id,:descriere,:filepath)] 我试图删除别名c,但仍然无法正常工作.

spring spring-data

6
推荐指数
2
解决办法
3万
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1

spring-data ×1

spring-data-jpa ×1

sql ×1