Skip to content

Conversation

derekm
Copy link

@derekm derekm commented Nov 21, 2024

Query Method docs say In and NotIn accept subclasses of Collection, but they actually accept subclasses of Iterable.

@pivotal-cla
Copy link

@derekm Please sign the Contributor License Agreement!

Click here to manually synchronize the status of this Pull Request.

See the FAQ for frequently asked questions.

@pivotal-cla
Copy link

@derekm Thank you for signing the Contributor License Agreement!

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Nov 21, 2024
@mp911de mp911de self-assigned this Nov 25, 2024
@mp911de
Copy link
Member

mp911de commented Jan 7, 2025

That isn't true. Using a plain Iterable fails:

Iterable<String> it = new Iterable<String>() {
	@Override
	public @NotNull Iterator<String> iterator() {
		return Arrays.asList("Dave", "Carter").iterator();
	}
};
java.lang.AssertionError: Unexpected value type (expected : java.lang.String) : org.springframework.data.jpa.repository.UserRepositoryFinderTests$1@7e408f88 (org.springframework.data.jpa.repository.UserRepositoryFinderTests$1)

	at org.hibernate.sql.exec.internal.JdbcParameterBindingImpl.<init>(JdbcParameterBindingImpl.java:23)
	at org.hibernate.sql.exec.spi.JdbcParameterBindings.createAndAddBinding(JdbcParameterBindings.java:97)
	at org.hibernate.type.BasicType.forEachDisassembledJdbcValue(BasicType.java:135)
	at org.hibernate.metamodel.mapping.Bindable.forEachJdbcValue(Bindable.java:197)
	at org.hibernate.sql.exec.spi.JdbcParameterBindings.registerParametersForEachJdbcValue(JdbcParameterBindings.java:78)
	at org.hibernate.sql.exec.spi.JdbcParameterBindings.registerParametersForEachJdbcValue(JdbcParameterBindings.java:69)
	at org.hibernate.query.sqm.internal.SqmUtil.createValueBindings(SqmUtil.java:532)
	at org.hibernate.query.sqm.internal.SqmUtil.createJdbcParameterBindings(SqmUtil.java:384)
	at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.buildCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:358)
	at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:268)
	at org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:244)
	at org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:518)
	at org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:367)
	at org.hibernate.query.Query.getResultList(Query.java:119)
	at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:130)
	at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:93)

@mp911de mp911de closed this Jan 7, 2025
@mp911de mp911de added status: declined A suggestion or change that we don't feel we should currently apply and removed status: waiting-for-triage An issue we've not yet triaged labels Jan 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: declined A suggestion or change that we don't feel we should currently apply

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants