java - sql 文件中的 ScriptStatementFailedException

标签 java sql spring

我在 spring 项目中与 h2 一起使用的 sql 脚本中遇到了org.springframework.jdbc.datasource.init.ScriptStatementFailedException

SET @TEASER = '<p> Text Text Text</p>'
SET @BODY = '<p> Lorem ipsum dolor sit amet</p>'

insert into author(id,first_name,last_name,email) values(1,'Dan','Vega','DVega@gmail.com');
insert into post(id,title,slug,teaser,body,author_id,posted_on) values(1,'Spring boot rocks','spring-boot-rocks',@TEASER,@BODY,1,CURRENT_TIMESTAMP);
insert into post(id,title,slug,teaser,body,author_id,posted_on) values(2,'Spring boot is kew;','spring-boot-is-kewl',@TEASER,@BODY,1,CURRENT_TIMESTAMP);

这是我正在使用的 Post 类

@Entity
public class Post {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String title;
@Column(columnDefinition = "TEXT")
private String body;
@Column(columnDefinition = "TEXT")
private String teaser;
private String slug;
@CreatedDate @Column(columnDefinition = "TIMESTAMP")
private Date postedOn;
@ManyToOne
private Author author;
// constructors, getters and setters

错误 - 对于与 Post 类有关的每个类都会重复该错误,在本例中,HomeController 有一个 Autowiring 的 PostService 类,它具有 PostRepository Autowiring 属性。

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'homeController': Unsatisfied dependency expressed through method 'setPostService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'postService': Unsatisfied dependency expressed through method 'setPostRepository' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'postRepository': Cannot create inner bean '(inner bean)#3f6f9cef' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#3f6f9cef': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory': Post-processing of FactoryBean's singleton object failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #1 of URL [file:/C:/Users/Talon/Desktop/java%20netbeans/01/SpringBootH2Demo/target/classes/data-h2.sql]: SET @TEASER = '<p> Text Text Text</p>' SET @BODY = '<p> Lorem ipsum dolor sit amet</p>' insert into author(id,first_name,last_name,email) values(1,'Dan','Vega','DVega@gmail.com'); nested exception is org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "SET @TEASER = '<p> Text Text Text</p>' SET[*] @BODY = '<p> Lorem ipsum dolor sit amet</p>' INSERT INTO AUTHOR(ID,FIRST_NAME,LAST_NAME,EMAIL) VALUES(1,'Dan','Vega','DVega@gmail.com') "; SQL statement:
SET @TEASER = '<p> Text Text Text</p>' SET @BODY = '<p> Lorem ipsum dolor sit amet</p>' insert into author(id,first_name,last_name,email) values(1,'Dan','Vega','DVega@gmail.com') [42000-196]

如果我从 sql 文件中删除 @TEASER 和 @BODY,并且从后值插入中删除它就可以了。那我是不是拼错了什么?

最佳答案

您可能忘记在 SET 语句后添加分号。

SET @TEASER = '文本文本文本'; SET @BODY = 'Lorem ipsum dolor sat amet'; 试试这个,如果有效的话

关于java - sql 文件中的 ScriptStatementFailedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45357295/

相关文章:

循环中的 Java 扫描器仅获取第一个输入

mysql - SQL:如何优化单个表上的多个 SELECT

sql - 如何在 go-pg(带 Go 的 Postgres ORM)中查询嵌套结构中的子字段?

java - Maven javadoc :javadoc works but javadoc:aggregate throws errors that look like compiler errors

spring boot https PKCS12 DerInputStream.getLength() : lengthTag=111, 太大

java - OrientDB无法使用java远程获取图形实例

java - 按后退按钮到另一个 Activity

java - 如何使用信任存储和密码指定 Kafka AdminClientConfig (Kafka Admin api)

mysql - 数据库设计: Custom data layout and rights management

java - 在 Spring Boot 中实现模型继承有奇怪的数据存储库行为