diff --git a/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyJsonHelp.java b/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyJsonHelp.java index 11b3f74bc..247e113df 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyJsonHelp.java +++ b/src/main/java/io/ebeaninternal/server/deploy/BeanPropertyAssocManyJsonHelp.java @@ -46,15 +46,16 @@ class BeanPropertyAssocManyJsonHelp { if (JsonToken.VALUE_NULL == event) { return; } - if (JsonToken.START_ARRAY != event) { - throw new JsonParseException(parser, "Unexpected token " + event + " - expecting start_array "); - } if (many.isTransient()) { jsonReadTransientUsingObjectMapper(readJson, parentBean); return; } + if (JsonToken.START_ARRAY != event) { + throw new JsonParseException(parser, "Unexpected token " + event + " - expecting start_array"); + } + many.setValue(parentBean, many.jsonReadCollection(readJson, parentBean)); } diff --git a/src/test/java/org/tests/model/elementcollection/EcmPerson.java b/src/test/java/org/tests/model/elementcollection/EcmPerson.java index fafb073e1..ec686d028 100644 --- a/src/test/java/org/tests/model/elementcollection/EcmPerson.java +++ b/src/test/java/org/tests/model/elementcollection/EcmPerson.java @@ -7,7 +7,9 @@ import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.MapKeyColumn; +import javax.persistence.Transient; import javax.persistence.Version; + import java.util.LinkedHashMap; import java.util.Map; @@ -25,6 +27,9 @@ public class EcmPerson { @Column(name = "number", length = 10) Map phoneNumbers = new LinkedHashMap<>(); + @Transient + Map transientPhoneNumbers; + @Version long version; diff --git a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMap.java b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMap.java index f03bf1933..a2e181892 100644 --- a/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMap.java +++ b/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasicMap.java @@ -5,6 +5,7 @@ import io.ebean.Ebean; import org.ebeantest.LoggedSqlCollector; import org.junit.Test; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -137,6 +138,7 @@ public class TestElementCollectionBasicMap extends BaseTestCase { } private void jsonToFrom(EcmPerson foundFirst) { + foundFirst.transientPhoneNumbers = new HashMap<>(); String asJson = Ebean.json().toJson(foundFirst); EcmPerson fromJson = Ebean.json().toBean(EcmPerson.class, asJson);