Skip to content

Schema appears to be ignored in query methods #2162

@albertodeluca

Description

@albertodeluca

Issue description

With version 4, query methods that used to work with version 3 for PostgreSQL tables not in the search_path or in public, return this error:

java.lang.IllegalStateException: Required table ["schema"."table"] by a SELECT column not imported by FROM ["table"] or JOIN []

Entity

@Table(schema="archive", name="media") public record Media( @Id Long id, String objectType, Long objectId ) {} 

Repository

public interface MediaRepository extends ListCrudRepository<Media, Long> { List<Media> findByObjectTypeAndObjectId(String objectType, String objectId); } 

Error

java.lang.IllegalStateException: Required table ["archive"."media"] by a SELECT column not imported by FROM ["media"] or JOIN [] at org.springframework.data.relational.core.sql.SelectValidator.doValidate(SelectValidator.java:63) ~[spring-data-relational-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.relational.core.sql.SelectValidator.validate(SelectValidator.java:49) ~[spring-data-relational-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.relational.core.sql.DefaultSelectBuilder.build(DefaultSelectBuilder.java:214) ~[spring-data-relational-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.relational.core.sql.SelectBuilder$BuildSelect.build(SelectBuilder.java:589) ~[spring-data-relational-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.jdbc.repository.query.StatementFactory$SelectionBuilder.build(StatementFactory.java:211) ~[spring-data-jdbc-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.jdbc.repository.query.JdbcQueryCreator.complete(JdbcQueryCreator.java:212) ~[spring-data-jdbc-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.jdbc.repository.query.JdbcQueryCreator.complete(JdbcQueryCreator.java:52) ~[spring-data-jdbc-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:96) ~[spring-data-commons-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.jdbc.repository.query.PartTreeJdbcQuery.createQuery(PartTreeJdbcQuery.java:231) ~[spring-data-jdbc-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.jdbc.repository.query.PartTreeJdbcQuery.execute(PartTreeJdbcQuery.java:178) ~[spring-data-jdbc-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:169) ~[spring-data-commons-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) ~[spring-data-commons-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:167) ~[spring-data-commons-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:146) ~[spring-data-commons-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-7.0.0-RC2.jar:7.0.0-RC2] at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:69) ~[spring-data-commons-4.0.0-RC1.jar:4.0.0-RC1] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-7.0.0-RC2.jar:7.0.0-RC2] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:370) ~[spring-tx-7.0.0-RC2.jar:7.0.0-RC2] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118) ~[spring-tx-7.0.0-RC2.jar:7.0.0-RC2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-7.0.0-RC2.jar:7.0.0-RC2] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:135) ~[spring-tx-7.0.0-RC2.jar:7.0.0-RC2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-7.0.0-RC2.jar:7.0.0-RC2] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:222) ~[spring-aop-7.0.0-RC2.jar:7.0.0-RC2] at jdk.proxy2/jdk.proxy2.$Proxy103.findByObjectTypeAndObjectId(Unknown Source) ~[na:na] at tech.aiaqua.desk.apiservice.media.MediaService.findByObjectTypeAndObjectId(MediaService.java:97) ~[classes/:na] 

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions