diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PojoMapper.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PojoMapper.java index c0abf6e197..e4007628fd 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PojoMapper.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PojoMapper.java @@ -23,6 +23,8 @@ import java.lang.invoke.MethodHandles; import java.lang.reflect.Field; import java.util.function.Function; +import java.util.Arrays; +import java.util.Comparator; import org.apache.cayenne.CayenneRuntimeException; @@ -48,6 +50,8 @@ public PojoMapper(Class type) { } Field[] declaredFields = type.getDeclaredFields(); + java.util.Arrays.sort(declaredFields, Comparator.comparing(Field::getName)); + this.setters = new MethodHandle[declaredFields.length]; int i = 0; for(Field field : declaredFields) {