我已经使用Spring Initializr设置了Spring Boot MVC应用程序(2.0.5.RELEASE),其中还包括了“会话”。在我的build.grade依赖项中似乎只包含“ implementation('org.springframework.session:spring-session-jdbc')”,据我所知,不需要其他配置。我添加的唯一内容是对必需的数据库表的liquibase迁移,以支持基于JDBC的会话。应用程序启动并在8080上正常监听,但是当我碰到控制器时,在调试行中出现以下错误:
21:36:34.903 [QUIET] [system.out] org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [INSERT INTO SPRING_SESSION_ATTRIBUTES(SESSION_PRIMARY_ID, ATTRIBUTE_NAME, ATTRIBUTE_BYTES) SELECT PRIMARY_ID, ?, ? FROM SPRING_SESSION WHERE SESSION_ID = ?ERROR: duplicate key value violates unique constraint "pk_spring_session_attributes"
21:36:34.903 [QUIET] [system.out] Detail: Key (session_primary_id)=(e4eba468-b0c0-4561-991b-7da4b83326c9) already exists.; nested exception is org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "pk_spring_session_attributes"
21:36:34.903 [QUIET] [system.out] Detail: Key (session_primary_id)=(e4eba468-b0c0-4561-991b-7da4b83326c9) already exists.
21:36:34.903 [QUIET] [system.out] at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:242) ~[spring-jdbc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
在创建和加载会话似乎是基本的内置功能的情况下,我很感谢能解释为什么会出现此错误。我的猜测是我需要添加一些配置,但是我不确定要添加什么以及为什么它似乎没有任何作用。