Skip to content

Commit 72fdb1c

Browse files
committed
Allow primitive repository args for DynamicProxyable repositories.. (#1972)
Closes #1965.
1 parent cdfb69b commit 72fdb1c

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

src/main/java/org/springframework/data/couchbase/repository/support/FindMethod.java

+8
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ private static Method internalFind(Method[] toTest, String name, Class[] paramet
6666
}
6767
int j;
6868
for (j = 0; j < l; j++) {
69+
if(params[j] == int.class && parameterTypes[j] == Integer.class )
70+
continue;
71+
if(params[j] == long.class && parameterTypes[j] == Long.class )
72+
continue;
73+
if(params[j] == double.class && parameterTypes[j] == Double.class )
74+
continue;
75+
if(params[j] == boolean.class && parameterTypes[j] == Boolean.class )
76+
continue;
6977
if (!params[j].isAssignableFrom(parameterTypes[j]))
7078
break;
7179
}

src/test/java/org/springframework/data/couchbase/domain/ReactiveAirportRepository.java

+3
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ public interface ReactiveAirportRepository
5454
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
5555
Flux<Airport> findAll();
5656

57+
@Query("#{#n1ql .selectEntity} WHERE #{#n1ql.filter} ORDER BY $3 $4 LIMIT $1 OFFSET $2 ")
58+
Flux<Airport> findAllTestPrimitives(int iint, long llong, double ddouble, boolean bbolean);
59+
5760
@Override
5861
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
5962
Mono<Void> deleteAll();

src/test/java/org/springframework/data/couchbase/repository/ReactiveCouchbaseRepositoryQueryIntegrationTests.java

+10-6
Original file line numberDiff line numberDiff line change
@@ -41,26 +41,20 @@
4141

4242
import org.junit.jupiter.api.Test;
4343
import org.springframework.beans.factory.annotation.Autowired;
44-
import org.springframework.context.annotation.Configuration;
4544
import org.springframework.dao.DataRetrievalFailureException;
4645
import org.springframework.dao.OptimisticLockingFailureException;
4746
import org.springframework.data.couchbase.CouchbaseClientFactory;
48-
import org.springframework.data.couchbase.config.AbstractCouchbaseConfiguration;
4947
import org.springframework.data.couchbase.domain.Airport;
5048
import org.springframework.data.couchbase.domain.ReactiveAirportRepository;
5149
import org.springframework.data.couchbase.domain.ReactiveUserRepository;
5250
import org.springframework.data.couchbase.domain.User;
53-
import org.springframework.data.couchbase.repository.config.EnableReactiveCouchbaseRepositories;
5451
import org.springframework.data.couchbase.util.Capabilities;
5552
import org.springframework.data.couchbase.util.ClusterType;
5653
import org.springframework.data.couchbase.util.IgnoreWhen;
5754
import org.springframework.data.couchbase.util.JavaIntegrationTests;
5855
import org.springframework.data.domain.PageRequest;
5956
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
6057

61-
import com.couchbase.client.core.deps.io.netty.handler.ssl.util.InsecureTrustManagerFactory;
62-
import com.couchbase.client.core.env.SecurityConfig;
63-
import com.couchbase.client.java.env.ClusterEnvironment;
6458

6559
/**
6660
* template class for Reactive Couchbase operations
@@ -99,6 +93,16 @@ void shouldSaveAndFindAll() {
9993
}
10094
}
10195

96+
@Test
97+
void testPrimitiveArgs() {
98+
int iint = 0;
99+
long llong = 0;
100+
double ddouble = 0.0;
101+
boolean bboolean = true;
102+
List<Airport> all = reactiveAirportRepository.withScope("_default")
103+
.findAllTestPrimitives(iint, llong, ddouble, bboolean).toStream().collect(Collectors.toList());
104+
}
105+
102106
@Test
103107
void testQuery() {
104108
Airport vie = null;

0 commit comments

Comments
 (0)