use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.
the class SimpleDaoTest method test_count_groupby.
@Test
public void test_count_groupby() {
if (!dao.meta().isMySql())
return;
// MySQL/PgSQL/SqlServer 与 Oracle/H2的结果会不一样,奇葩啊
for (int i = 0; i < 10; i++) {
Pet pet = Pet.create(R.UU32());
pet.setAge(20 + i / 4);
dao.insert(pet);
}
Cnd cnd = Cnd.where("age", ">", 20);
cnd.groupBy("age");
assertEquals(10, dao.count(Pet.class, null));
assertEquals(4, dao.count(Pet.class, cnd));
}
use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.
the class SimpleDaoTest method test_sql_pager.
@Test
public void test_sql_pager() {
dao.create(Pet.class, true);
for (int i = 0; i < 100; i++) {
dao.insert(Pet.class, Chain.make("name", "record" + i).add("nickName", "Time=" + System.currentTimeMillis()));
}
Pager pager = dao.createPager(5, 5);
pager.setRecordCount(dao.count(Pet.class));
Sql sql = Sqls.queryEntity("select * from t_pet");
sql.setEntity(dao.getEntity(Pet.class));
sql.setPager(pager);
dao.execute(sql);
List<Pet> pets = sql.getList(Pet.class);
assertNotNull(pets);
assertEquals(5, pets.size());
assertEquals("record20", pets.get(0).getName());
assertEquals("record21", pets.get(1).getName());
assertEquals("record22", pets.get(2).getName());
assertEquals("record23", pets.get(3).getName());
assertEquals("record24", pets.get(4).getName());
}
use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.
the class SimpleDaoTest method test_insert_with_id.
@Test
public void test_insert_with_id() {
if (dao.meta().isSqlServer())
return;
dao.clear(Pet.class);
Pet pet = Pet.create("zzz");
// 主动设置id
pet.setId(9090);
Dao dao = Daos.ext(this.dao, FieldFilter.create(Pet.class, FieldMatcher.make(null, null, true).setIgnoreId(false)));
dao.fastInsert(pet);
// 只有一条记录
pet = dao.fetch(Pet.class);
assertEquals(9090, pet.getId());
// / 然后用1.b.53的新方法测试一下
if (dao.meta().isPostgresql()) {
System.out.println("因为Pet的@Id配置了@Next,导致插入后再执行里面的sql会报错");
// 还没想到怎么解决, FieldMatcher存在的时候忽略@Next?
return;
}
dao.clear(Pet.class);
pet = Pet.create("zzz");
// 主动设置id
pet.setId(9090);
dao.insert(pet, FieldFilter.create(Pet.class, FieldMatcher.create(false)));
// 只有一条记录
pet = dao.fetch(Pet.class);
assertEquals(9090, pet.getId());
}
use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.
the class SimpleDaoTest method test_migration.
@Test
public void test_migration() {
dao.execute(Sqls.create("drop table t_pet"));
Entity<Pet> en = dao.getEntity(Pet.class);
NutDao dao = (NutDao) this.dao;
JdbcExpert expert = dao.getJdbcExpert();
MappingField mf = en.getField("age");
String str = "create table t_pet (" + mf.getColumnName() + " " + expert.evalFieldType(mf) + "," + mf.getColumnName() + "_2" + " " + expert.evalFieldType(mf) + ")";
dao.execute(Sqls.create(str));
Daos.migration(dao, Pet.class, !dao.meta().isSQLite(), !dao.meta().isSQLite());
}
use of org.nutz.dao.test.meta.Pet in project nutz by nutzam.
the class FieldFilterTest method test_query_by_filter.
@Test
public void test_query_by_filter() {
dao.update(dao.fetch(Pet.class, "xb").setNickName("XiaoBai"));
assertEquals("XiaoBai", dao.fetch(Pet.class, "xb").getNickName());
final List<Pet> pets = new ArrayList<Pet>();
FieldFilter.create(Pet.class, "id|name").run(new Atom() {
public void run() {
pets.add(dao.query(Pet.class, null, null).get(0));
}
});
assertNull(pets.get(0).getNickName());
}
Aggregations