Spring集成H2数据库执行DDL语句报错求助
Spring Boot 整合H2数据库时DDL执行错误排查
基于Spring构建H2数据库,按照Jasper Zhao的教程操作后,执行DDL语句时触发org.hibernate.tool.schema.spi.CommandAcceptanceException异常,错误出现在指定的INSERT语句执行阶段。以下是相关代码与配置:
Model类
package com.example.SpringPractice.model; // imports @Entity @Table(name = "courses") public class Course { @Id @GeneratedValue private Long id; private String code; private String coursename; }
Repository接口
package com.example.SpringPractice.repository; import com.example.SpringPractice.model.Course; import org.springframework.data.repository.CrudRepository; public interface CourseRepository extends CrudRepository<Course, Long> { }
依赖配置(pom.xml)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
主类
package com.example.SpringPractice; // imports @SpringBootApplication public class SpringPracticeApplication { @Autowired private CourseRepository courseRepository; public static void main(String[] args) { SpringApplication.run(SpringPracticeApplication.class, args); } @PostConstruct private void postInit() { System.out.println("All courses: " + courseRepository.findAll()); } }
application.properties配置
spring.jpa.hibernate.ddl-auto=create spring.datasource.url = jdbc:h2:mem:course-db
出错的SQL语句
INSERT INTO courses VALUES (id, code, coursename) VALUES (1, 'CS150', 'Intro to Computer Science')
已尝试修改application.properties配置、切换javax到jakarta依赖,但问题仍未解决,恳请帮忙排查原因。
内容的提问来源于stack exchange,提问作者Aosh
相关产品推荐
相关产品推荐

