Регистрация  |  Вход

soql builder

Недавно в голове появились мысли, собрать в кучу все (хоть и небольшие) знания по SOQL и написать API для построения запросов на основе объектной модели (на подобии LINQ в .net), как вдруг - наткнулся на ссылку http://code.google.com/p/apex-lang/. Оказывается некий Richard уже давно всё придумал и реализовал (2010 год). Только посмотрите:

всем привычный SOQL

SELECT name FROM account WHERE employees < 10

SOQL Builder

new al.SoqlBuilder()
.selectx('name')
.fromx('account')
.wherex(new al.FieldCondition('employees').lessThan(10))
.toSoql();

по моему это прекрасно)

Пусть для небольших запросов это накладно, но для запросов с динамическими условиям это просто чудо (можно динамически строить сколь угодно сложные условия и не сидеть часами в отладке по причине забытой скобки, кавычки, экранизации и др.)
Вот ссылка на статью блога автора, где он показывает достоинства SOQL Builder http://richardvanhook.com/2010/04/11/soql-builder/.

Ко всему прочему его "библиотека" содержит кучу полезных классов по работе с массивами, стандартными типами данных, email, json, page, url и др. Автор предлагает свой вариант пагинации данных http://richardvanhook.com/2009/08/03/visualforce-pagination-with-apex-lang/

ссылка на последнюю версию http://apex-lang.googlecode.com/files/apex-lang-1.18.zip

Может кто-нибудь уже пользовался его наработками, делитесь впечатлениями.

Недавно в голове появились мысли, собрать в кучу все (хоть и небольшие) знания по SOQL и написать API для построения запросов на основе объектной модели (на подобии LINQ в .net), как вдруг - наткнулся на ссылку [url]http://code.google.com/p/apex-lang/[/url]. Оказывается некий Richard уже давно всё придумал и реализовал (2010 год). Только посмотрите:

всем привычный SOQL
[code]
SELECT name FROM account WHERE employees < 10
[/code]

SOQL Builder
[code]
new al.SoqlBuilder()
 .selectx('name')
 .fromx('account')
 .wherex(new al.FieldCondition('employees').lessThan(10))
 .toSoql();
[/code]

по моему это прекрасно)

Пусть для небольших запросов это накладно, но для запросов с динамическими условиям это просто чудо (можно динамически строить сколь угодно сложные условия и не сидеть часами в отладке по причине забытой скобки, кавычки, экранизации и др.)
Вот ссылка на статью блога автора, где он показывает достоинства SOQL Builder [url]http://richardvanhook.com/2010/04/11/soql-builder/[/url].

Ко всему прочему его "библиотека" содержит кучу полезных классов по работе с массивами, стандартными типами данных, email, json, page, url и др. Автор предлагает свой вариант пагинации данных [url]http://richardvanhook.com/2009/08/03/visualforce-pagination-with-apex-lang/[/url]

ссылка на последнюю версию [url]http://apex-lang.googlecode.com/files/apex-lang-1.18.zip[/url]

Может кто-нибудь уже пользовался его наработками, делитесь впечатлениями.

Интересно.

я думал, что LINQ со своим SQL-подобным декларативным синтаксисом тем и хорош, что позволяет кверить объекты как SQL.
Был рад, когда увидел синтаксис SOQL.

а теперь выясняется, то более традиционный синтаксис с последовательным вызовом методов дает большие преимущества...
нужно будет более внимательно это изучить.

Интересно.

я думал, что LINQ со своим SQL-подобным декларативным синтаксисом тем и хорош, что позволяет кверить объекты как SQL.
Был рад, когда увидел синтаксис SOQL.

а теперь выясняется, то более традиционный синтаксис с последовательным вызовом методов дает большие преимущества...
нужно будет более внимательно это изучить.

Если вы говорите об этом, значит никогда не пользовались workbench )

Ну а само решение оччень полезное)

Если вы говорите об этом, значит никогда не пользовались workbench )

Ну а само решение оччень полезное)

dlisovsky
Недавно в голове появились мысли, собрать в кучу все (хоть и небольшие) знания по SOQL и написать API для построения запросов на основе объектной модели (на подобии LINQ в .net), как вдруг - наткнулся на ссылку http://code.google.com/p/apex-lang/. Оказывается некий Richard уже давно всё придумал и реализовал (2010 год). Только посмотрите:

всем привычный SOQL

SELECT name FROM account WHERE employees < 10

SOQL Builder

new al.SoqlBuilder()
.selectx('name')
.fromx('account')
.wherex(new al.FieldCondition('employees').lessThan(10))
.toSoql();

по моему это прекрасно)

Пусть для небольших запросов это накладно, но для запросов с динамическими условиям это просто чудо (можно динамически строить сколь угодно сложные условия и не сидеть часами в отладке по причине забытой скобки, кавычки, экранизации и др.)
Вот ссылка на статью блога автора, где он показывает достоинства SOQL Builder http://richardvanhook.com/2010/04/11/soql-builder/.

Ко всему прочему его "библиотека" содержит кучу полезных классов по работе с массивами, стандартными типами данных, email, json, page, url и др. Автор предлагает свой вариант пагинации данных http://richardvanhook.com/2009/08/03/visualforce-pagination-with-apex-lang/

ссылка на последнюю версию http://apex-lang.googlecode.com/files/apex-lang-1.18.zip

Может кто-нибудь уже пользовался его наработками, делитесь впечатлениями.


Cпасибо очень интересно!

[quote="dlisovsky"]Недавно в голове появились мысли, собрать в кучу все (хоть и небольшие) знания по SOQL и написать API для построения запросов на основе объектной модели (на подобии LINQ в .net), как вдруг - наткнулся на ссылку [url]http://code.google.com/p/apex-lang/[/url]. Оказывается некий Richard уже давно всё придумал и реализовал (2010 год). Только посмотрите:

всем привычный SOQL
[code]
SELECT name FROM account WHERE employees < 10
[/code]

SOQL Builder
[code]
new al.SoqlBuilder()
 .selectx('name')
 .fromx('account')
 .wherex(new al.FieldCondition('employees').lessThan(10))
 .toSoql();
[/code]

по моему это прекрасно)

Пусть для небольших запросов это накладно, но для запросов с динамическими условиям это просто чудо (можно динамически строить сколь угодно сложные условия и не сидеть часами в отладке по причине забытой скобки, кавычки, экранизации и др.)
Вот ссылка на статью блога автора, где он показывает достоинства SOQL Builder [url]http://richardvanhook.com/2010/04/11/soql-builder/[/url].

Ко всему прочему его "библиотека" содержит кучу полезных классов по работе с массивами, стандартными типами данных, email, json, page, url и др. Автор предлагает свой вариант пагинации данных [url]http://richardvanhook.com/2009/08/03/visualforce-pagination-with-apex-lang/[/url]

ссылка на последнюю версию [url]http://apex-lang.googlecode.com/files/apex-lang-1.18.zip[/url]

Может кто-нибудь уже пользовался его наработками, делитесь впечатлениями.[/quote]
Cпасибо очень интересно!

Присоединяюсь! Очень интересная информация. Неприменно воспользуюсь в работе!

Спасибо!

Присоединяюсь! Очень интересная информация. Неприменно воспользуюсь в работе!

Спасибо!

Sergey Prichepo
Может кто-нибудь уже пользовался его наработками, делитесь впечатлениями.

Был один проект, который использовал эту библиотеку. Лично мне эта библиотека не очень понравилась. Включает эта библиотека более 30 классов. И если вам в проекте нужно делать только простые селекты или селект в селекте это уж больно громоздко. Но каждый выбирает сам. Да и не делает эта библиотека ровным счетом ничего не возможного, что я не могу сделать руками.

[quote="Sergey Prichepo"]Может кто-нибудь уже пользовался его наработками, делитесь впечатлениями.[/quote]

Был один проект, который использовал эту библиотеку. Лично мне эта библиотека не очень понравилась. Включает эта библиотека более 30 классов. И если вам в проекте нужно делать только простые селекты или селект в селекте это уж больно громоздко. Но каждый выбирает сам. Да и не делает эта библиотека ровным счетом ничего не возможного, что я не могу сделать руками.