Spring boot 创建spring启动会话时,列primary_id中的值为Null

Spring boot 创建spring启动会话时,列primary_id中的值为Null,spring-boot,spring-session,Spring Boot,Spring Session,我一直在尝试将会话数据添加到我的应用程序中。在大多数情况下,我一直在遵循创建JDBCHTTP会话的文档。因此,我有 HttpSessionConfig.java @EnableJdbcHttpSession public class HttpSessionConfig {} 我在application.properties文件中有用户名、密码、数据库名等。此外,我使用找到的脚本创建了会话表。然而,当我进入我的登录页面时,我发现了错误 PreparedStatementCallback; SQ

我一直在尝试将会话数据添加到我的应用程序中。在大多数情况下,我一直在遵循创建JDBCHTTP会话的文档。因此,我有

HttpSessionConfig.java

@EnableJdbcHttpSession 
public class HttpSessionConfig {}
我在application.properties文件中有用户名、密码、数据库名等。此外,我使用找到的脚本创建了会话表。然而,当我进入我的登录页面时,我发现了错误

PreparedStatementCallback; SQL [INSERT INTO SPRING_SESSION(SESSION_ID, 
CREATION_TIME, LAST_ACCESS_TIME, MAX_INACTIVE_INTERVAL, 
PRINCIPAL_NAME) VALUES (?, ?, ?, ?, ?)]; ERROR: null value in column 
"primary_id" violates not-null constraint Detail: Failing row contains 
(null, 835a7b12-d171-4f77-bd22-7da7ed78ca12, 1510171280672, 
1510171280672, 1800, null, null).; nested exception is 
org.postgresql.util.PSQLException: ERROR: null value in column 
"primary_id" violates not-null constraint Detail: Failing row contains 
(null, 835a7b12-d171-4f77-bd22-7da7ed78ca12, 1510171280672, 
1510171280672, 1800, null, null).

然而,据我从文件中所知,这应该是可行的。是否有一个步骤我忽略了或没有在文档中出现?

对于我来说,解决方案是@user5960886在他们自己的一个回复中指出的

我对spring表spring\u session和spring\u session\u属性使用了错误的模式主机,它要求prinary\u id在我的应用程序运行时不为null,并填充了不填充此列的模式,即1.3.0.RELEASE。 以下是具有两种模式的链接:

版本1.3.0.0发布

最新大师

如果使用最新架构创建了现有表,则可能需要删除并重新创建这些表。注意:现有数据将丢失。以下是您可以使用的drop SQL语句:


您正在使用哪个数据库?您是否在application.properties | yml文件中设置spring.jpa.hibernate.naming.physical-strategy的值?如果您在GitHub中创建一个示例项目,这将帮助我和其他人找出问题所在。@Pytry我使用的是postgres,我没有物理策略值集。我将尝试在接下来的20分钟左右创建一个最小的项目。@Pytry我想我已经解决了这个问题。也就是说,我使用了bootspring示例中的postgres-schema.sql文件,它的工作原理与从repo中获取的不同,并且工作正常。很高兴听到这个消息:我只是想澄清遇到相同问题的人的问题/解决方案是什么。问题是我当时使用的是spring会话的1.3版本,但我生成的是2.0.0模式,这将产生上述错误。