Добрый день!
Решил написать небольшой обзор с примерами на легковесный ORM для Scala — Squeryl 0.9.5
Начнем с основных достоинств данного фреймворка
1) Squeryl предоставляет DSL для SQL запросов. К примеру
def songs = from(MusicDb.songs)(s => where(s.artistId === id) select(s))
def fixArtistName = update(songs)(s =>
where(s.title === "Prodigy")
set(
s.title := "The Prodigy",
)
)
Синтаксис напоминает C# LINQ. Как вы могли заметить в запросах используются лямбда выражения, что значительно сокращает объем кода.
В данном примере метод songs возвращает объект Query[Song] который реализует интерфейс Iterable, что позволяет работать с ним как с обычной коллекцией.
Также стоит отметить, что запросы можно будет использовать в качестве подзапросов, для этого достаточно указать запрос в конструкции from вместо таблицы.
Читать полностью »