Веб-фреймворк

Sep 24, 2011 13:31


В свободное время потихоньку пилю свой фреймворк. По сути, в общем и целом ничего нового там нет. Но я предлагаю свой взгляд на некоторые моменты, прежде всего обусловленный моими собственными тараканами. Например, я панически боюсь всего, что напоминает динамическую типизацию и потому вместо строк у меня повсюду интерфейсы. В принципе, можно ( Read more... )

web

Leave a comment

konsoletyper September 25 2011, 19:08:35 UTC
Как описать в ней вот такой запрос: SELECT * FROM t1 AS t
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

asuilin September 25 2011, 20:23:57 UTC
Современный JSP чуть более чем полностью состоит из JSTL и EL-выражений. Чудеса типа вставки произвольного Java кода в шаблон давно уже никто не использует, в JSP движках можно даже принудительно отключить поддержку Java-сниппетов. Конструкции тоже анахронизм, полезный только когда хочется, чтобы IDEA сделала подсказки по свойствам бинов в EL-выраженях.

Reply


Leave a comment

Up