Estoy usando Spring Session con Postgres para almacenar sesiones de usuario para una aplicación Spring Boot. Spring Session busca las tablas spring_session y spring_session_attributes en el esquema público. ¿Hay alguna manera de decirle a Spring Session que busque las tablas de sesión en un esquema que no sea público? spring.jpa.properties.hibernate.default_schema en application.properties parece no afectar esto.
Logré resolver el problema especificando el esquema en la cadena de conexión/URL de la fuente de datos de la siguiente manera (también como se describe en una respuesta aquí ):
spring.datasource.url=jdbc:postgresql://localhost:9999/db_name?currentSchema=<schema_name>Todavía no estoy seguro de por qué la propiedad spring.session.jdbc.schema en application.properties no tiene efecto en el esquema utilizado por la sesión de primavera...
En realidad, el parámetro spring.session.jdbc.schema no significa el "esquema de la base de datos", sino el esquema SQL (el SQL que define la estructura de datos donde se almacenan los datos de la sesión).
Los esquemas para diferentes bases de datos están disponibles en:
Puede establecer el nombre de la tabla que usará Spring Session en su application.properties . Propiedades como esta:
spring.session.jdbc.table-name = MY_SCHEMA.SPRING_SESSION Como resultado, las consultas SQL emitidas por Spring Session irán contra las tablas de su esquema especificado. Consulte también org.springframework.session.jdbc.JdbcOperationsSessionRepository .