Spring Boot 1.5.2.RELEASE数据库支持的会话

时间:2018-03-20 14:10:56

标签: java spring postgresql spring-boot spring-session

我正在使用Spring Boot 1.5.2.RELEASE开发一个项目,其任务是添加数据库支持的HTTP会话。

所以,我很容易在2.0.0.RELEASE中工作,应用程序启动并创建表 spring_session spring_session_attributes

这是我添加到更高版本的属性:

spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=ALWAYS

看看spring-boot 1.5.2.RELEASE它似乎使用spring-session 1.3.0.RELEASE作为托管版本,所以我在这里找到了文档:https://docs.spring.io/spring-session/docs/1.3.0.RELEASE/reference/html5/guides/httpsession-jdbc.html

无论我尝试什么,我都会收到以下错误:

  

Whitelabel错误页面此应用程序没有明确的映射   /错误,所以你看到这是一个后备。 3月20日星期二14:02:06 GMT   2018出现意外错误(type = Internal Server Error,   状态= 500)。 PreparedStatementCallback;糟糕的SQL语法[SELECT   S.SESSION_ID,S.CREATION_TIME,S.LAST_ACCESS_TIME,   S.MAX_INACTIVE_INTERVAL,SA.ATTRIBUTE_NAME,SA.ATTRIBUTE_BYTES FROM   SPRING_SESSION S LEFT OUTER加入SPRING_SESSION_ATTRIBUTES SA ON   S.SESSION_ID = SA.SESSION_ID WHERE S.SESSION_ID =?];嵌套异常   是org.postgresql.util.PSQLException:错误:关系“spring_session”   不存在位置:127

这是我的application.properties(我试图让表格出现在我的PostgreSQL数据库中) - 这些表格应该自动为我创建,对吗?

spring.datasource.url=jdbc:postgresql://localhost:5432/sandbox
spring.datasource.password=sandbox
spring.datasource.username=sandbox
spring.thymeleaf.cache=false
spring.template.cache=false
spring.session.store-type=jdbc
spring.session.jdbc.initializer.enabled=true

2 个答案:

答案 0 :(得分:0)

添加此内容后可以尝试吗? spring.session.jdbc.table名= SPRING_SESSION

答案 1 :(得分:0)

不幸的是我无法自动创建表,所以我挖掘了模式的spring-session jar文件并手动创建它们。好消息是会话现在保存在我的数据库中了!