#430 - ENH: Support for UUID mapping to native DB UUID type (Postgres, H2)

This commit is contained in:
Robin Bygrave
2015-10-26 20:52:16 +13:00
parent f3102ba02c
commit bcf2a44187
10 changed files with 256 additions and 79 deletions
@@ -31,11 +31,13 @@ public class ServerConfigTest {
Properties props = new Properties();
props.setProperty("persistBatch", "INSERT");
props.setProperty("persistBatchOnCascade", "INSERT");
props.setProperty("dbuuid","binary");
serverConfig.loadFromProperties(props);
assertEquals(PersistBatch.INSERT, serverConfig.getPersistBatch());
assertEquals(PersistBatch.INSERT, serverConfig.getPersistBatchOnCascade());
assertEquals(ServerConfig.DbUuid.BINARY, serverConfig.getDbUuid());
serverConfig.setPersistBatch(PersistBatch.NONE);
serverConfig.setPersistBatchOnCascade(PersistBatch.NONE);
@@ -1,22 +1,22 @@
package com.avaje.ebeaninternal.server.type;
import java.util.List;
import java.util.UUID;
import org.junit.Assert;
import org.junit.Test;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.SqlRow;
import com.avaje.tests.model.basic.UUOne;
import org.junit.Test;
import java.util.List;
import java.util.UUID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
public class TestBinaryUUID extends BaseTestCase {
@Test
public void test() {
UUOne one0 = new UUOne();
one0.setName("first one");
@@ -27,26 +27,31 @@ public class TestBinaryUUID extends BaseTestCase {
Ebean.save(one0);
Ebean.save(one1);
UUOne fetch0 = Ebean.find(UUOne.class, one0.getId());
UUOne fetch1 = Ebean.find(UUOne.class, one1.getId());
Assert.assertEquals(one0.getId(), fetch0.getId());
Assert.assertEquals(one0.getName(), fetch0.getName());
Assert.assertEquals(one1.getId(), fetch1.getId());
Assert.assertEquals(one1.getName(), fetch1.getName());
assertEquals(one0.getId(), fetch0.getId());
assertEquals(one0.getName(), fetch0.getName());
assertEquals(one1.getId(), fetch1.getId());
assertEquals(one1.getName(), fetch1.getName());
String sql = "select id, name from uuone";
List<SqlRow> list = Ebean.createSqlQuery(sql).findList();
for (SqlRow sqlRow : list) {
Object sqlId = sqlRow.get("id");
Assert.assertNotNull(sqlId);
Assert.assertTrue(sqlId instanceof byte[]);
assertNotNull(sqlId);
UUID uuid = sqlRow.getUUID("id");
Assert.assertNotNull(uuid);
assertNotNull(uuid);
}
String asJson = Ebean.json().toJson(fetch0);
UUOne bean = Ebean.json().toBean(UUOne.class, asJson);
assertEquals(fetch0.getId(), bean.getId());
assertEquals(fetch0.getName(), bean.getName());
}
}