From ad596a20437c574f5e6e6279925802208508fdf1 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Tue, 1 Mar 2016 17:35:55 +1300 Subject: [PATCH] #580 - @Enumerated(EnumType.STRING) on Enum uses toString() rather than name() --- .../server/type/ScalarTypeEnumStandard.java | 2 +- .../com/avaje/tests/model/basic/MNonEnum.java | 15 ++++++++++++--- .../other/TestFindWhereUsingEnumerated.java | 19 ++++++++++++++++--- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEnumStandard.java b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEnumStandard.java index 3491058f7..e2039f7d9 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEnumStandard.java +++ b/src/main/java/com/avaje/ebeaninternal/server/type/ScalarTypeEnumStandard.java @@ -102,7 +102,7 @@ public class ScalarTypeEnumStandard { if (beanValue == null) { return null; } - return beanValue.toString(); + return format(beanValue); } public Object toBeanType(Object dbValue) { diff --git a/src/test/java/com/avaje/tests/model/basic/MNonEnum.java b/src/test/java/com/avaje/tests/model/basic/MNonEnum.java index 95ff9006d..278d4488f 100644 --- a/src/test/java/com/avaje/tests/model/basic/MNonEnum.java +++ b/src/test/java/com/avaje/tests/model/basic/MNonEnum.java @@ -2,7 +2,16 @@ package com.avaje.tests.model.basic; public enum MNonEnum { - BEGIN, - END - + BEGIN("B"), + END("E"); + + String value; + + MNonEnum(String value) { + this.value = value; + } + + public String toString() { + return value; + } } diff --git a/src/test/java/com/avaje/tests/query/other/TestFindWhereUsingEnumerated.java b/src/test/java/com/avaje/tests/query/other/TestFindWhereUsingEnumerated.java index c714cac6d..60b9106cb 100644 --- a/src/test/java/com/avaje/tests/query/other/TestFindWhereUsingEnumerated.java +++ b/src/test/java/com/avaje/tests/query/other/TestFindWhereUsingEnumerated.java @@ -7,13 +7,26 @@ import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.MNonEnum; import com.avaje.tests.model.basic.MNonUpdPropEntity; +import static org.assertj.core.api.Assertions.assertThat; + public class TestFindWhereUsingEnumerated extends BaseTestCase { @Test public void test() { - - Ebean.find(MNonUpdPropEntity.class).where().eq("nonEnum", MNonEnum.BEGIN).findList(); - + + MNonUpdPropEntity e = new MNonUpdPropEntity(); + e.setNonEnum(MNonEnum.END); + e.setName("TheNonEnumIsEnd"); + e.setNote("note"); + + Ebean.save(e); + + MNonUpdPropEntity unique = Ebean.find(MNonUpdPropEntity.class).where() + .eq("nonEnum", MNonEnum.END) + .eq("name", "TheNonEnumIsEnd") + .findUnique(); + + assertThat(unique).isNotNull(); } }