diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/BasicTypeConverter.java b/src/main/java/com/avaje/ebeaninternal/server/core/BasicTypeConverter.java index ef2501a32..d98ad3f65 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/BasicTypeConverter.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/BasicTypeConverter.java @@ -150,6 +150,9 @@ public final class BasicTypeConverter implements Serializable { if (value instanceof Boolean) { return (Boolean) value; } + if (value instanceof Number) { + return ((Number)value).intValue() == 1; + } String s = value.toString(); return s.equalsIgnoreCase(dbTrueValue); } diff --git a/src/test/java/com/avaje/ebean/SqlRowBooleanTest.java b/src/test/java/com/avaje/ebean/SqlRowBooleanTest.java new file mode 100644 index 000000000..46b5dc8b3 --- /dev/null +++ b/src/test/java/com/avaje/ebean/SqlRowBooleanTest.java @@ -0,0 +1,19 @@ +package com.avaje.ebean; + +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class SqlRowBooleanTest { + + @Test + public void getBoolean() { + + SqlQuery sqlQuery = Ebean.createSqlQuery("SELECT 1 IS NOT NULL AS `ISNT_NULL`"); + SqlRow row = sqlQuery.findUnique(); + + Boolean value = row.getBoolean("ISNT_NULL"); + + assertThat(value).isTrue(); + } +} \ No newline at end of file diff --git a/src/test/java/com/avaje/ebeaninternal/server/core/BasicTypeConverterTest.java b/src/test/java/com/avaje/ebeaninternal/server/core/BasicTypeConverterTest.java new file mode 100644 index 000000000..4f061a77f --- /dev/null +++ b/src/test/java/com/avaje/ebeaninternal/server/core/BasicTypeConverterTest.java @@ -0,0 +1,34 @@ +package com.avaje.ebeaninternal.server.core; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class BasicTypeConverterTest { + + @Test + public void toBoolean_when_1_long() throws Exception { + assertTrue(BasicTypeConverter.toBoolean(1L, "T")); + } + + @Test + public void toBoolean_when_1_int() throws Exception { + assertTrue(BasicTypeConverter.toBoolean(1, "T")); + } + + @Test + public void toBoolean_when_0() throws Exception { + assertFalse(BasicTypeConverter.toBoolean(0L, "T")); + } + + @Test + public void toBoolean_when_TrueValue() throws Exception { + assertTrue(BasicTypeConverter.toBoolean("T", "T")); + } + + @Test + public void toBoolean_when_notTrueValue() throws Exception { + assertFalse(BasicTypeConverter.toBoolean("F", "T")); + } + +} \ No newline at end of file