首页 > 解决方案 > 如何为 Microsoft SQL 设置 Spring Session?

问题描述

application.properties通过文件登录 Microsoft SQL DB 时出现错误。我目前创建了这些Spring_Session表,但由于某种原因,我不断收到相同的错误,Java 说它无法插入到表中。我确定我输入了正确的服务器和密码,但我不知道为什么它仍然没有登录。

应用属性:

#MSSQL
jasypt.encryptor.bean=encryptorBean
spring.datasource.url=jdbc:sqlserver://hostname.COM\\RQSHRD31;databaseName=TEST_DB
spring.datasource.username=FED_User
spring.datasource.password=ENC(password)
spring.datasource.databasename=TEST_DB
spring.datasource.databaseschema=APD
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver



#Datasource Info
spring.session.jdbc.table-name=SPRING_SESSION
spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
server.servlet.session.timeout = 1500
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
spring.jpa.hibernate.ddl-auto = none
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

SpringBoot 应用程序:

@SpringBootApplication      //FETest
@EnableJdbcHttpSession
public class TaddmDevApplication {

    public static void main(String[] args) {

        Policy.setPolicy(new TaddmPolicy());

        SpringApplication.run(TaddmDevApplication.class, args);     

    }

}

错误:

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [INSERT INTO SPRING_SESSION(PRIMARY_ID, SESSION_ID, CREATION_TIME, LAST_ACCESS_TIME, MAX_INACTIVE_INTERVAL, EXPIRY_TIME, PRINCIPAL_NAME) VALUES (?, ?, ?, ?, ?, ?, ?)]; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'SPRING_SESSION'.





Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'SPRING_SESSION'.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259) 

标签: javaspringspring-boot

解决方案


Microsoft SQL DB 搭配可以设置为区分大小写。在这种情况下,Spring_Session您创建的SPRING_SESSION表和您尝试从 Spring 登录的表与数据库不同。

尝试将 table-name 的名称从 application.property 更改为Spring_Session

#Datasource Info
spring.session.jdbc.table-name=Spring_Session

推荐阅读