Skip to content

Commit 27bb58c

Browse files
mp911deschauder
authored andcommitted
DATAJPA-1827 - Polishing.
Use ClassUtils.isAssignable(…) to simplify boxed/primitive assignability checks. Original pull request: #438.
1 parent 0bef8ce commit 27bb58c

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/main/java/org/springframework/data/jpa/repository/query/JpaQueryExecution.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public Object execute(AbstractJpaQuery query, JpaParametersParameterAccessor acc
9797
JpaQueryMethod queryMethod = query.getQueryMethod();
9898
Class<?> requiredType = queryMethod.getReturnType();
9999

100-
if (void.class.equals(requiredType) || requiredType.isAssignableFrom(result.getClass())) {
100+
if (ClassUtils.isAssignable(requiredType, void.class) || ClassUtils.isAssignableValue(requiredType, result)) {
101101
return result;
102102
}
103103

@@ -218,10 +218,11 @@ public ModifyingExecution(JpaQueryMethod method, EntityManager em) {
218218

219219
Class<?> returnType = method.getReturnType();
220220

221-
boolean isVoid = void.class.equals(returnType) || Void.class.equals(returnType);
222-
boolean isInt = int.class.equals(returnType) || Integer.class.equals(returnType);
221+
boolean isVoid = ClassUtils.isAssignable(returnType, Void.class);
222+
boolean isInt = ClassUtils.isAssignable(returnType, Integer.class);
223223

224-
Assert.isTrue(isInt || isVoid, "Modifying queries can only use void or int/Integer as return type!");
224+
Assert.isTrue(isInt || isVoid,
225+
"Modifying queries can only use void or int/Integer as return type! Offending method: " + method);
225226

226227
this.em = em;
227228
this.flush = method.getFlushAutomatically();

0 commit comments

Comments
 (0)