Spring JDBC开发RESTful服务时遇SPRING_SESSION表不存在运行时错误
解决Spring Session的SPRING_SESSION表不存在问题
嘿,我完全懂你现在的困扰——明明配置了spring.jpa.hibernate.ddl-auto=create,但Spring Session需要的SPRING_SESSION表就是没自动创建对吧?这其实是个很常见的配置误区,我来给你拆解原因和解决办法:
为什么JPA的ddl配置不生效?
你配置的spring.jpa.hibernate.ddl-auto=create是给Hibernate(JPA的实现)用来管理你的业务实体表的,而SPRING_SESSION和SPRING_SESSION_ATTRIBUTES这两张是Spring Session的专用表,Hibernate根本不会处理它们。所以得用Spring Session自己的配置来触发自动建表。
具体解决步骤
1. 开启Spring Session的自动建表功能
在你的application.properties里添加这行关键配置:
spring.session.jdbc.initialize-schema=always
这个配置会告诉Spring Session在应用启动时自动检查并创建所需的表(如果不存在的话)。注意:生产环境建议改成embedded或者手动维护表结构,避免意外操作数据。
2. 手动执行建表脚本(备用方案)
如果自动建表还是没生效,你可以直接在MySQL中执行官方提供的建表脚本:
CREATE TABLE SPRING_SESSION ( PRIMARY_ID CHAR(36) NOT NULL, SESSION_ID CHAR(36) NOT NULL, CREATION_TIME BIGINT NOT NULL, LAST_ACCESS_TIME BIGINT NOT NULL, MAX_INACTIVE_INTERVAL INT NOT NULL, EXPIRY_TIME BIGINT NOT NULL, PRINCIPAL_NAME VARCHAR(100), PRIMARY KEY (PRIMARY_ID) ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; CREATE UNIQUE INDEX SPRING_SESSION_IX1 ON SPRING_SESSION (SESSION_ID); CREATE INDEX SPRING_SESSION_IX2 ON SPRING_SESSION (EXPIRY_TIME); CREATE INDEX SPRING_SESSION_IX3 ON SPRING_SESSION (PRINCIPAL_NAME); CREATE TABLE SPRING_SESSION_ATTRIBUTES ( SESSION_PRIMARY_ID CHAR(36) NOT NULL, ATTRIBUTE_NAME VARCHAR(200) NOT NULL, ATTRIBUTE_BYTES BLOB NOT NULL, PRIMARY KEY (SESSION_PRIMARY_ID, ATTRIBUTE_NAME), CONSTRAINT SPRING_SESSION_ATTRIBUTES_FK FOREIGN KEY (SESSION_PRIMARY_ID) REFERENCES SPRING_SESSION(PRIMARY_ID) ON DELETE CASCADE ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
3. 检查基础配置是否正确
- 确认你的数据库
getfit已经提前创建好了——Hibernate和Spring Session都不会帮你创建整个数据库,只会在已存在的库里建表。 - 检查数据源的用户名和密码是否有足够的权限创建表(比如
root用户没问题,但普通用户得确保拥有CREATE TABLE权限)。
4. 确认Spring Session的依赖是否正确
如果用Maven,确保pom.xml里有这个依赖:
<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-jdbc</artifactId> </dependency>
Gradle的话:
implementation 'org.springframework.session:spring-session-jdbc'
你的异常信息参考
org.springframework...
按照上面的步骤操作,应该就能解决表不存在的问题啦!
内容的提问来源于stack exchange,提问作者Jeremi
相关产品推荐
相关产品推荐

