#1629 - ENH: Add sqlQuery(sql) and sqlUpdate(sql) ... as alias for createSqlQuery(sql) and createSqlUpdate(sql)

This commit is contained in:
rob bygrave
2019-02-04 11:14:54 +13:00
parent 5a4a0e3886
commit 9e33f36808
12 changed files with 177 additions and 140 deletions
+28 -8
View File
@@ -702,29 +702,49 @@ public class DB {
}
/**
* Create a SqlQuery for executing native sql
* query statements.
* Look to execute a native sql query that does not returns beans but instead
* returns SqlRow or direct access to ResultSet (see {@link SqlQuery#findList(RowMapper)}.
*
* <p>
* Note that you can use raw SQL with entity beans, refer to the SqlSelect
* annotation for examples.
* Refer to {@link DtoQuery} for native sql queries returning DTO beans.
* </p>
* <p>
* Refer to {@link #findNative(Class, String)} for native sql queries returning entity beans.
* </p>
*/
public static SqlQuery createSqlQuery(String sql) {
return getDefault().createSqlQuery(sql);
public static SqlQuery sqlQuery(String sql) {
return getDefault().sqlQuery(sql);
}
/**
* Create a sql update for executing native dml statements.
* This is an alias for {@link #sqlQuery(String)}.
*/
public static SqlQuery createSqlQuery(String sql) {
return sqlQuery(sql);
}
/**
* Look to execute a native sql insert update or delete statement.
* <p>
* Use this to execute a Insert Update or Delete statement. The statement will
* be native to the database and contain database table and column names.
* </p>
*
* <p>
* See {@link SqlUpdate} for example usage.
* </p>
*
* @return The SqlUpdate instance to set parameters and execute
*/
public static SqlUpdate sqlUpdate(String sql) {
return getDefault().sqlUpdate(sql);
}
/**
* This is an alias for {@link #sqlUpdate(String)}.
*/
public static SqlUpdate createSqlUpdate(String sql) {
return getDefault().createSqlUpdate(sql);
return sqlUpdate(sql);
}
/**
+21 -5
View File
@@ -452,24 +452,40 @@ public interface Database {
<T> DtoQuery<T> createNamedDtoQuery(Class<T> dtoType, String namedQuery);
/**
* Create a SqlQuery for executing native sql
* query statements.
* Look to execute a native sql query that does not returns beans but instead
* returns SqlRow or direct access to ResultSet (see {@link SqlQuery#findList(RowMapper)}.
*
* <p>
* Note that you can use raw SQL with entity beans, refer to the SqlSelect
* annotation for examples.
* Refer to {@link DtoQuery} for native sql queries returning DTO beans.
* </p>
* <p>
* Refer to {@link #findNative(Class, String)} for native sql queries returning entity beans.
* </p>
*/
SqlQuery sqlQuery(String sql);
/**
* This is an alias for {@link #sqlQuery(String)}.
*/
SqlQuery createSqlQuery(String sql);
/**
* Create a sql update for executing native dml statements.
* Look to execute a native sql insert update or delete statement.
* <p>
* Use this to execute a Insert Update or Delete statement. The statement will
* be native to the database and contain database table and column names.
* </p>
*
* <p>
* See {@link SqlUpdate} for example usage.
* </p>
*
* @return The SqlUpdate instance to set parameters and execute
*/
SqlUpdate sqlUpdate(String sql);
/**
* This is an alias for {@link #sqlUpdate(String)}.
*/
SqlUpdate createSqlUpdate(String sql);
+24 -25
View File
@@ -10,34 +10,30 @@ import java.util.function.Consumer;
import java.util.function.Predicate;
/**
* Query object for performing native SQL queries that return SqlRow's.
* <p>
* Firstly note that you can use your own sql queries with <em>entity beans</em>
* by using the SqlSelect annotation. This should be your first approach when
* wanting to use your own SQL queries.
* </p>
* <p>
* If ORM Mapping is too tight and constraining for your problem then SqlQuery
* could be a good approach.
* </p>
* Query object for performing native SQL queries that return SqlRow or directly read
* ResultSet using a RowMapper.
* <p>
* The returned SqlRow objects are similar to a LinkedHashMap with some type
* conversion support added.
* </p>
* <p>
* Refer to {@link DtoQuery} for native sql queries returning DTO beans.
* </p>
* <p>
* Refer to {@link Database#findNative(Class, String)} for native sql queries returning entity beans.
* </p>
*
* <pre>{@code
*
* // its typically a good idea to use a named query
* // and put the sql in the orm.xml instead of in your code
* // example using named parameters
*
* String sql = "select id, name from customer where name like :name and status_code = :status";
*
* SqlQuery sqlQuery = Ebean.createSqlQuery(sql);
* sqlQuery.setParameter("name", "Acme%");
* sqlQuery.setParameter("status", "ACTIVE");
*
* // execute the query returning a List of MapBean objects
* List<SqlRow> list = sqlQuery.findList();
* List<SqlRow> list =
* DB.sqlQuery(sql)
* .setParameter("name", "Acme%")
* .setParameter("status", "ACTIVE")
* .findList();
*
* }</pre>
*/
@@ -104,7 +100,7 @@ public interface SqlQuery extends Serializable {
*
* String sql = "select id, name, status from customer order by name desc";
*
* Ebean.createSqlQuery(sql)
* DB.sqlQuery(sql)
* .findEachRow((resultSet, rowNum) -> {
*
* // read directly from ResultSet
@@ -134,7 +130,7 @@ public interface SqlQuery extends Serializable {
*
* String sql = "select max(unit_price) from o_order_detail where order_qty > ?";
*
* BigDecimal maxPrice = Ebean.createSqlQuery(sql)
* BigDecimal maxPrice = DB.sqlQuery(sql)
* .setParameter(1, 2)
* .findSingleAttribute(BigDecimal.class);
*
@@ -176,9 +172,10 @@ public interface SqlQuery extends Serializable {
* " order by (unit_price * order_qty) desc";
*
* //
* List<BigDecimal> lineAmounts = Ebean.createSqlQuery(sql)
* .setParameter(1, 3)
* .findSingleAttributeList(BigDecimal.class);
* List<BigDecimal> lineAmounts =
* DB.sqlQuery(sql)
* .setParameter(1, 3)
* .findSingleAttributeList(BigDecimal.class);
*
* }</pre>
*
@@ -204,14 +201,16 @@ public interface SqlQuery extends Serializable {
*
* String sql = "select id, name from customer where name like ? and status = ?";
*
* Ebean.createSqlQuery(sql)
* List<SqlRow> list =
* DB.sqlQuery(sql)
* .setParams("Rob", Status.NEW)
* .findList();
*
*
* // is the same as ...
*
* Ebean.createSqlQuery(sql)
* List<SqlRow> list =
* DB.sqlQuery(sql)
* .setParameter(1, "Rob")
* .setParameter(2, "Status.NEW)
* .findList();
+28 -14
View File
@@ -16,20 +16,33 @@ package io.ebean;
* notify Ebean of external changes and enable Ebean to maintain it's "L2"
* server cache.
* </p>
* <p>
*
* <pre>{@code
*
* // example that uses 'named' parameters
* // example using 'positioned' parameters
*
* String s = "UPDATE f_topic set post_count = :count where id = :id";
* String sql = "insert into audit_log (group, title, description) values (?, ?, ?);
*
* SqlUpdate update = Ebean.createSqlUpdate(s);
* update.setParameter("id", 1);
* update.setParameter("count", 50);
* int rows =
* DB.sqlUpdate(sql)
* .setParams("login", "new user", "user rob was created")
* .executeNow();
*
* int modifiedCount = update.execute();
* }</pre>
*
* String msg = "There were " + modifiedCount + " rows updated";
* <pre>{@code
*
* // example using 'named' parameters
*
* String sql = "update topic set post_count = :count where id = :id";
*
* int rows =
* DB.sqlUpdate(sql)
* .setParameter("id", 1)
* .setParameter("count", 50)
* .execute();
*
* String msg = "There were " + rows + " rows updated";
*
* }</pre>
* <p>
@@ -37,9 +50,10 @@ package io.ebean;
* <pre>{@code
*
* String sql = "insert into audit_log (id, description, modified_description) values (?,?,?)";
* SqlUpdate insert = Ebean.createSqlUpdate(sql);
*
* try (Transaction txn = Ebean.beginTransaction()) {
* SqlUpdate insert = DB.sqlUpdate(sql);
*
* try (Transaction txn = DB.beginTransaction()) {
* txn.setBatchMode(true);
*
* insert.setNextParameter(10000);
@@ -65,7 +79,7 @@ package io.ebean;
* </p>
* <pre>{@code
*
* try (Transaction txn = Ebean.beginTransaction()) {
* try (Transaction txn = DB.beginTransaction()) {
*
* insert.setNextParameter(10000);
* insert.setNextParameter("hello");
@@ -220,20 +234,20 @@ public interface SqlUpdate {
/**
* Set one of more positioned parameters.
* <p>
* This is a convenient alternative to multiple calls setParameter().
* This is a convenient alternative to multiple setParameter() calls.
*
* <pre>{@code
*
* String sql = "insert into audit_log (id, name, version) values (?,?,?)";
*
* Ebean.createSqlUpdate(sql)
* DB.sqlUpdate(sql)
* .setParams(UUID.randomUUID(), "Hello", 1)
* .executeNow();
*
*
* // is the same as ...
*
* Ebean.createSqlUpdate(sql)
* DB.sqlUpdate(sql)
* .setParameter(1, UUID.randomUUID())
* .setParameter(2, "Hello")
* .setParameter(3, 1)
+1 -1
View File
@@ -130,7 +130,7 @@ public class DtoQueryTest extends BaseTestCase {
List<Integer> ids = Arrays.asList(1, 2);
List<SqlRow> list = server().createSqlQuery("select id, name from o_customer where id = any(?)")
List<SqlRow> list = DB.sqlQuery("select id, name from o_customer where id = any(?)")
.setParameter(1, ids)
.findList();
@@ -1,7 +1,6 @@
package io.ebeaninternal.dbmigration;
import io.ebean.BaseTestCase;
import io.ebean.SqlQuery;
import io.ebean.SqlRow;
import io.ebean.SqlUpdate;
import io.ebean.Transaction;
@@ -108,8 +107,7 @@ public class DbMigrationTest extends BaseTestCase {
// Run migration
runScript(false, "1.1.sql");
SqlQuery select = server().createSqlQuery("select * from migtest_e_basic order by id");
List<SqlRow> result = select.findList();
List<SqlRow> result = server().sqlQuery("select * from migtest_e_basic order by id").findList();
assertThat(result).hasSize(2);
SqlRow row = result.get(0);
@@ -137,11 +135,10 @@ public class DbMigrationTest extends BaseTestCase {
// Oracle caches the statement and does not detect schema change. It fails with
// an ORA-01007
if (isOracle()) {
select = server().createSqlQuery("select * from migtest_e_basic order by id,id");
result = server().sqlQuery("select * from migtest_e_basic order by id,id").findList();
} else {
select = server().createSqlQuery("select * from migtest_e_basic order by id");
result = server().sqlQuery("select * from migtest_e_basic order by id").findList();
}
result = select.findList();
assertThat(result).hasSize(2);
row = result.get(0);
assertThat(row.keySet()).doesNotContain("old_boolean", "old_boolean2");
@@ -150,8 +147,7 @@ public class DbMigrationTest extends BaseTestCase {
runScript(false, "1.4__dropsFor_1.3.sql");
// now DB structure shoud be the same as v1_0
select = server().createSqlQuery("select * from migtest_e_basic order by id");
result = select.findList();
result = server().sqlQuery("select * from migtest_e_basic order by id").findList();
assertThat(result).hasSize(2);
row = result.get(0);
assertThat(row.keySet()).contains("old_boolean", "old_boolean2");
@@ -1,10 +1,10 @@
package io.ebeaninternal.server.type;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.DB;
import io.ebean.SqlRow;
import org.tests.model.basic.UUOne;
import org.junit.Test;
import org.tests.model.basic.UUOne;
import java.util.List;
import java.util.UUID;
@@ -25,11 +25,11 @@ public class TestBinaryUUID extends BaseTestCase {
one1.setId(id);
one1.setName("second one");
Ebean.save(one0);
Ebean.save(one1);
DB.save(one0);
DB.save(one1);
UUOne fetch0 = Ebean.find(UUOne.class, one0.getId());
UUOne fetch1 = Ebean.find(UUOne.class, one1.getId());
UUOne fetch0 = DB.find(UUOne.class, one0.getId());
UUOne fetch1 = DB.find(UUOne.class, one1.getId());
assertEquals(one0.getId(), fetch0.getId());
assertEquals(one0.getName(), fetch0.getName());
@@ -38,7 +38,7 @@ public class TestBinaryUUID extends BaseTestCase {
assertEquals(one1.getName(), fetch1.getName());
String sql = "select id, name from uuone";
List<SqlRow> list = Ebean.createSqlQuery(sql).findList();
List<SqlRow> list = DB.createSqlQuery(sql).findList();
for (SqlRow sqlRow : list) {
Object sqlId = sqlRow.get("id");
assertNotNull(sqlId);
@@ -47,8 +47,8 @@ public class TestBinaryUUID extends BaseTestCase {
}
String asJson = Ebean.json().toJson(fetch0);
UUOne bean = Ebean.json().toBean(UUOne.class, asJson);
String asJson = DB.json().toJson(fetch0);
UUOne bean = DB.json().toBean(UUOne.class, asJson);
assertEquals(fetch0.getId(), bean.getId());
assertEquals(fetch0.getName(), bean.getName());
@@ -1,13 +1,12 @@
package org.tests.basic;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.DB;
import io.ebean.Query;
import io.ebean.SqlUpdate;
import org.tests.model.basic.MRole;
import org.tests.model.basic.MUser;
import org.junit.Assert;
import org.junit.Test;
import org.tests.model.basic.MRole;
import org.tests.model.basic.MUser;
import java.util.ArrayList;
import java.util.List;
@@ -17,32 +16,28 @@ public class TestM2MVanilla extends BaseTestCase {
@Test
public void testVanilla() {
SqlUpdate delInt = Ebean.createSqlUpdate("delete from mrole_muser");
SqlUpdate delRoles = Ebean.createSqlUpdate("delete from mrole");
SqlUpdate delUsers = Ebean.createSqlUpdate("delete from muser");
Ebean.execute(delInt);
Ebean.execute(delRoles);
Ebean.execute(delUsers);
DB.createSqlUpdate("delete from mrole_muser").execute();
DB.sqlUpdate("delete from mrole").execute();
DB.sqlUpdate("delete from muser").execute();
MRole r1 = new MRole();
r1.setRoleName("role1");
Ebean.save(r1);
DB.save(r1);
MRole r2 = new MRole();
r2.setRoleName("role2");
Ebean.save(r2);
DB.save(r2);
MRole r3 = new MRole();
r3.setRoleName("role3");
Ebean.save(r3);
DB.save(r3);
MUser u0 = new MUser();
u0.setUserName("something");
Ebean.save(u0);
DB.save(u0);
MUser user = Ebean.find(MUser.class, u0.getUserid());
MUser user = DB.find(MUser.class, u0.getUserid());
List<MRole> roleList = new ArrayList<>();
roleList.add(r1);
@@ -50,34 +45,34 @@ public class TestM2MVanilla extends BaseTestCase {
user.setRoles(roleList);
Ebean.save(user);
DB.save(user);
// Ebean.saveManyToManyAssociations(user, "roles");
MUser checkUser = Ebean.find(MUser.class, u0.getUserid());
MUser checkUser = DB.find(MUser.class, u0.getUserid());
List<MRole> checkRoles = checkUser.getRoles();
Assert.assertNotNull(checkRoles);
Assert.assertEquals(2, checkRoles.size());
checkRoles.add(r3);
Ebean.save(checkUser);
DB.save(checkUser);
// Ebean.saveManyToManyAssociations(checkUser, "roles");
MUser checkUser2 = Ebean.find(MUser.class, u0.getUserid());
MUser checkUser2 = DB.find(MUser.class, u0.getUserid());
List<MRole> checkRoles2 = checkUser2.getRoles();
Assert.assertNotNull(checkRoles2);
Assert.assertEquals("added a role", 3, checkRoles2.size());
Query<MUser> rolesQuery0 = Ebean.find(MUser.class).where().eq("roles", r1).query();
Query<MUser> rolesQuery0 = DB.find(MUser.class).where().eq("roles", r1).query();
rolesQuery0.findList();
Query<MUser> rolesQuery = Ebean.find(MUser.class).where().in("roles", roleList).query();
Query<MUser> rolesQuery = DB.find(MUser.class).where().in("roles", roleList).query();
List<MUser> userInRolesList = rolesQuery.findList();
Assert.assertTrue(!userInRolesList.isEmpty());
List<MUser> list = Ebean.find(MUser.class)
List<MUser> list = DB.find(MUser.class)
.where().in("roles", roleList)
.filterMany("roles").eq("roleName", "role1")
.findList();
@@ -88,14 +83,14 @@ public class TestM2MVanilla extends BaseTestCase {
checkRoles2.remove(0);
checkRoles2.remove(0);
Ebean.save(checkUser2);
DB.save(checkUser2);
checkUser2 = Ebean.find(MUser.class, u0.getUserid());
checkUser2 = DB.find(MUser.class, u0.getUserid());
checkRoles2 = checkUser2.getRoles();
Assert.assertNotNull(checkRoles2);
Assert.assertEquals("added a role", 1, checkRoles2.size());
Ebean.delete(checkUser2);
DB.delete(checkUser2);
}
@@ -1,11 +1,11 @@
package org.tests.basic;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.DB;
import io.ebean.SqlRow;
import org.tests.model.basic.ResetBasicData;
import org.junit.Assert;
import org.junit.Test;
import org.tests.model.basic.ResetBasicData;
import java.util.List;
@@ -17,7 +17,7 @@ public class TestOrderTotalAmountSql extends BaseTestCase {
ResetBasicData.reset();
String sql = "select order_id, sum(order_qty*unit_price) as total_amount from o_order_detail where order_qty > :minQty group by order_id";
List<SqlRow> sqlRows = Ebean.createSqlQuery(sql).setParameter("minQty", 1).findList();
List<SqlRow> sqlRows = DB.sqlQuery(sql).setParameter("minQty", 1).findList();
for (SqlRow sqlRow : sqlRows) {
Integer id = sqlRow.getInteger("order_id");
@@ -1,8 +1,7 @@
package org.tests.basic.encrypt;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.SqlQuery;
import io.ebean.DB;
import io.ebean.SqlRow;
import io.ebean.annotation.ForPlatform;
import io.ebean.annotation.Platform;
@@ -26,7 +25,7 @@ public class TestEncrypt extends BaseTestCase {
public void testQueryBind() {
LoggedSqlCollector.start();
Ebean.find(EBasicEncrypt.class)
DB.find(EBasicEncrypt.class)
.where().startsWith("description", "Rob")
.findList();
@@ -39,23 +38,23 @@ public class TestEncrypt extends BaseTestCase {
@ForPlatform(Platform.H2)
public void test() {
Ebean.find(EBasicEncrypt.class).delete();
DB.find(EBasicEncrypt.class).delete();
EBasicEncrypt e = new EBasicEncrypt();
e.setName("testname");
e.setDescription("testdesc");
e.setDob(new Date(System.currentTimeMillis() - 100000));
Ebean.save(e);
DB.save(e);
SqlQuery q = Ebean.createSqlQuery("select * from e_basicenc where id = :id");
q.setParameter("id", e.getId());
SqlRow row = DB.createSqlQuery("select * from e_basicenc where id = :id")
.setParameter("id", e.getId())
.findOne();
SqlRow row = q.findOne();
row.getString("name");
row.get("description");
EBasicEncrypt e1 = Ebean.find(EBasicEncrypt.class, e.getId());
EBasicEncrypt e1 = DB.find(EBasicEncrypt.class, e.getId());
e1.getDescription();
@@ -63,14 +62,14 @@ public class TestEncrypt extends BaseTestCase {
e1.setDescription("moddesc");
e1.setStatus(EBasicEncrypt.Status.ONE);
Ebean.save(e1);
DB.save(e1);
EBasicEncrypt e2 = Ebean.find(EBasicEncrypt.class, e.getId());
EBasicEncrypt e2 = DB.find(EBasicEncrypt.class, e.getId());
assertEquals("moddesc", e2.getDescription());
assertEquals(EBasicEncrypt.Status.ONE, e2.getStatus());
SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null);
SpiEbeanServer server = (SpiEbeanServer) DB.getDefault();
DbEncrypt dbEncrypt = server.getDatabasePlatform().getDbEncrypt();
if (dbEncrypt == null) {
@@ -79,12 +78,12 @@ public class TestEncrypt extends BaseTestCase {
} else {
List<EBasicEncrypt> list = Ebean.find(EBasicEncrypt.class).where()
List<EBasicEncrypt> list = DB.find(EBasicEncrypt.class).where()
.eq("description", "moddesc").findList();
assertEquals(1, list.size());
list = Ebean.find(EBasicEncrypt.class).where().startsWith("description", "modde").findList();
list = DB.find(EBasicEncrypt.class).where().startsWith("description", "modde").findList();
assertEquals(1, list.size());
}
@@ -1,12 +1,11 @@
package org.tests.basic.encrypt;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.SqlQuery;
import io.ebean.DB;
import io.ebean.SqlRow;
import org.tests.model.basic.EBasicEncryptBinary;
import org.junit.Assert;
import org.junit.Test;
import org.tests.model.basic.EBasicEncryptBinary;
import java.sql.Timestamp;
@@ -22,17 +21,17 @@ public class TestEncryptBinary extends BaseTestCase {
e.setSomeTime(t0);
e.setData("HelloWorld".getBytes());
Ebean.save(e);
DB.save(e);
SqlQuery q = Ebean.createSqlQuery("select * from e_basicenc_bin where id = :id");
q.setParameter("id", e.getId());
SqlRow row = DB.createSqlQuery("select * from e_basicenc_bin where id = :id")
.setParameter("id", e.getId())
.findOne();
SqlRow row = q.findOne();
row.getString("name");
row.get("data");
row.get("some_time");
EBasicEncryptBinary e1 = Ebean.find(EBasicEncryptBinary.class, e.getId());
EBasicEncryptBinary e1 = DB.find(EBasicEncryptBinary.class, e.getId());
Timestamp t1 = e1.getSomeTime();
e1.getData();
@@ -44,9 +43,9 @@ public class TestEncryptBinary extends BaseTestCase {
e1.setName("testmod");
e1.setDescription("moddesc");
Ebean.save(e1);
DB.save(e1);
EBasicEncryptBinary e2 = Ebean.find(EBasicEncryptBinary.class, e.getId());
EBasicEncryptBinary e2 = DB.find(EBasicEncryptBinary.class, e.getId());
e2.getDescription();
}
@@ -1,15 +1,15 @@
package org.tests.basic.type;
import io.ebean.BaseTestCase;
import io.ebean.Ebean;
import io.ebean.DB;
import io.ebean.SqlQuery;
import io.ebean.SqlRow;
import org.junit.Assert;
import org.junit.Test;
import org.tests.model.basic.EBasic;
import org.tests.model.basic.EBasic.Status;
import org.tests.model.basic.EBasicEnumId;
import org.tests.model.basic.EBasicEnumInt;
import org.junit.Assert;
import org.junit.Test;
import java.util.Optional;
@@ -25,26 +25,25 @@ public class TestEnumValueAnnotation extends BaseTestCase {
b.setName("Banana");
b.setStatus(Status.NEW);
Ebean.save(b);
DB.save(b);
SqlQuery q = Ebean.createSqlQuery("select * from e_basic where id = :id");
q.setParameter("id", b.getId());
SqlRow sqlRow = DB.createSqlQuery("select * from e_basic where id = :id")
.setParameter("id", b.getId())
.findOne();
SqlRow sqlRow = q.findOne();
String strStatus = sqlRow.getString("status");
assertEquals("N", strStatus);
EBasic b2 = new EBasic();
b2.setName("Apple");
b2.setStatus(Status.NEW);
Ebean.save(b2);
DB.save(b2);
EBasic b3 = Ebean.find(EBasic.class, b2.getId());
EBasic b3 = DB.find(EBasic.class, b2.getId());
b3.setName("Orange");
Ebean.save(b3);
DB.save(b3);
}
@Test
@@ -53,9 +52,9 @@ public class TestEnumValueAnnotation extends BaseTestCase {
b.setName("Banana");
b.setStatus(EBasicEnumId.Status.NEW);
Ebean.save(b);
DB.save(b);
SqlQuery q = Ebean.createSqlQuery("select * from e_basic_enum_id where status = :status");
SqlQuery q = DB.createSqlQuery("select * from e_basic_enum_id where status = :status");
q.setParameter("status", b.getStatus());
SqlRow sqlRow = q.findOne();
@@ -64,7 +63,7 @@ public class TestEnumValueAnnotation extends BaseTestCase {
assertEquals("N", strStatus);
try {
b = Ebean.find(EBasicEnumId.class, b.getStatus());
b = DB.find(EBasicEnumId.class, b.getStatus());
} catch (java.lang.IllegalArgumentException iae) {
Assert.fail("The use of an enum as id should work : " + iae.getLocalizedMessage());
}
@@ -79,9 +78,9 @@ public class TestEnumValueAnnotation extends BaseTestCase {
b.setName("Banana");
b.setStatus(EBasicEnumInt.Status.NEW);
Ebean.save(b);
DB.save(b);
SqlQuery q = Ebean.createSqlQuery("select * from e_basic_eni where id = :id");
SqlQuery q = DB.createSqlQuery("select * from e_basic_eni where id = :id");
q.setParameter("id", b.getId());
Optional<SqlRow> sqlRow = q.findOneOrEmpty();
@@ -91,7 +90,7 @@ public class TestEnumValueAnnotation extends BaseTestCase {
});
EBasicEnumInt b2 = Ebean.find(EBasicEnumInt.class)
EBasicEnumInt b2 = DB.find(EBasicEnumInt.class)
.where().eq("id", b.getId())
.eq("status", EBasicEnumInt.Status.NEW)
.findOne();