diff --git a/src/org/redkale/convert/ConvertFactory.java b/src/org/redkale/convert/ConvertFactory.java index 1c7ef2df8..5bda49633 100644 --- a/src/org/redkale/convert/ConvertFactory.java +++ b/src/org/redkale/convert/ConvertFactory.java @@ -139,6 +139,8 @@ public abstract class ConvertFactory { public abstract boolean isReversible(); //是否可逆的 + public abstract boolean isFieldSort(); //当ConvertColumn.index相同时是否按字段名称排序 + public abstract ConvertFactory createChild(); public abstract ConvertFactory createChild(boolean tiny); diff --git a/src/org/redkale/convert/DeMember.java b/src/org/redkale/convert/DeMember.java index 53409f050..3dd077619 100644 --- a/src/org/redkale/convert/DeMember.java +++ b/src/org/redkale/convert/DeMember.java @@ -24,6 +24,8 @@ public final class DeMember implements Comparable attribute; protected Decodeable decoder; @@ -78,7 +80,7 @@ public final class DeMember implements Comparable o) { if (o == null) return -1; if (this.index != o.index) return (this.index == 0 ? Integer.MAX_VALUE : this.index) - (o.index == 0 ? Integer.MAX_VALUE : o.index); - return this.attribute.field().compareTo(o.attribute.field()); + return fieldSort ? this.attribute.field().compareTo(o.attribute.field()) : 0; } @Override diff --git a/src/org/redkale/convert/EnMember.java b/src/org/redkale/convert/EnMember.java index 5336d057c..60884ead6 100644 --- a/src/org/redkale/convert/EnMember.java +++ b/src/org/redkale/convert/EnMember.java @@ -33,6 +33,8 @@ public final class EnMember implements Comparable attribute, Encodeable encoder) { this.attribute = attribute; this.encoder = encoder; @@ -71,7 +73,7 @@ public final class EnMember implements Comparable o) { if (o == null) return -1; if (this.index != o.index) return (this.index == 0 ? Integer.MAX_VALUE : this.index) - (o.index == 0 ? Integer.MAX_VALUE : o.index); - return this.attribute.field().compareTo(o.attribute.field()); + return fieldSort ? this.attribute.field().compareTo(o.attribute.field()) : 0; } @Override diff --git a/src/org/redkale/convert/ObjectDecoder.java b/src/org/redkale/convert/ObjectDecoder.java index a0140f6db..f31ae8d5b 100644 --- a/src/org/redkale/convert/ObjectDecoder.java +++ b/src/org/redkale/convert/ObjectDecoder.java @@ -97,6 +97,7 @@ public final class ObjectDecoder implements Decodeable implements Encodeable { return true; } + @Override + public boolean isFieldSort() { + return true; + } + } diff --git a/src/org/redkale/convert/json/JsonFactory.java b/src/org/redkale/convert/json/JsonFactory.java index e7d067698..43c1ddc98 100644 --- a/src/org/redkale/convert/json/JsonFactory.java +++ b/src/org/redkale/convert/json/JsonFactory.java @@ -85,4 +85,9 @@ public final class JsonFactory extends ConvertFactory { public boolean isReversible() { return false; } + + @Override + public boolean isFieldSort() { + return true; + } }