В свободное время потихоньку пилю свой
фреймворк. По сути, в общем и целом ничего нового там нет. Но я предлагаю свой взгляд на некоторые моменты, прежде всего обусловленный моими собственными тараканами. Например, я панически боюсь всего, что напоминает динамическую типизацию и потому вместо строк у меня повсюду интерфейсы. В принципе, можно
(
Read more... )
WHERE 2 = (SELECT COUNT(*) FROM t1 WHERE t1.id = t.id)
Пришлось немного допилить поддержку подзапросов в библиотеке. В последней ревизии работает вот такой юнит-тест:
@Test
public void shouldGenerateCountSubquery() {
FooSource t1 = qb.get(FooSource.class);
FooSource t2 = qb.get(FooSource.class);
String sql = sql(qb.with(t1)
.filter(qb.wrap(2).allEq(
qb.with(t2)
.filter(t2.id().eq(t1.id()))
.fetch(qb.rowCount())))
.fetch(qb.rowCount()));
assertEquals("SELECT\n" +
" COUNT(*)\n" +
"FROM foo AS src0\n" +
"WHERE (2 = ALL (\n" +
" SELECT\n" +
" COUNT(*)\n" +
" FROM foo AS src1\n" +
" WHERE (src1.id = src0.id)\n" +
"))\n\n", sql);
}
Для второго примера пока не поддерживается row constructor и union. Но допилить поддержку - это ( ... )
Reply
Reply
Leave a comment