java - 如何为 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)
解决方案
Microsoft SQL DB 搭配可以设置为区分大小写。在这种情况下,Spring_Session
您创建的SPRING_SESSION
表和您尝试从 Spring 登录的表与数据库不同。
尝试将 table-name 的名称从 application.property 更改为Spring_Session
#Datasource Info
spring.session.jdbc.table-name=Spring_Session
推荐阅读
- ios - iOS:将 Firebase InAppMessaging 与 Cordova 项目集成
- facebook - 我收到错误(#10)“此消息在允许的窗口之外发送”,当发送带有按钮的消息以在 Facebook Messenger 中打开 web 视图时
- r - 如何在 ggplot2::label_parsed 的 plotmath 中包含美元符号
- javascript - 如何多次重试 Promise 函数?
- visual-studio - 使用 Visual Studio 时,我收到“对象引用未设置为对象的实例”错误。如何修复此错误?
- android - Android 小部件 - 无法访问共享首选项
- python - AWS Lambda python 从 DynamoDB 事件的响应中以 HTML 格式发送电子邮件正文
- html - 所需的 HTML 在我的网页上不起作用
- javascript - 在 JavaScript RegExp 中使用数组的正确方法是什么?
- javascript - 如何为 Object.assign 中的键分配多个值