Репозиторий SQL \ HQL запросов - PullRequest
1 голос
/ 24 января 2011

Работая над некоторыми проектами Java, я видел какой-то SQL-репозиторий.

Идея заключалась в том, чтобы поместить все запросы в один (или несколько) XML-файлов и извлекать их при необходимости по имени.Примерно так:

String sql = getSQLRepository().getSQL("SELECT_ALL_ROWS", params)
String sql2 = getSQLRepository().getSQL("SELECT_ROWS_WITH_COND", params)

В моем текущем проекте Grails у меня много HQL-запросов в десятках классов, и их сложно отследить.Похоже, что HQL-репозиторий был бы очень хорошим решением.

Так может кто-нибудь сказать, если какая-то реализация репозитория SQL \ HQL уже присутствует или существуют более эффективные решения?

Ответы [ 4 ]

2 голосов
/ 28 января 2011

После того, как мы начали использовать http://source.mysema.com/display/querydsl, больше не нужно думать о текстовых запросах и о том, как ими управлять.

2 голосов
/ 24 января 2011

Посмотрите на Mapping Queries в Hibernate.

1 голос
/ 24 января 2011

Я бы порекомендовал вам использовать старые добрые файлы свойств.Вы можете поместить их в свой путь к классу и затем использовать следующее:

Properties sql = new Properties();
properties.load(getClass().getResourceAsStream("sql.properties"));
////////
String query = sql.get("SELECT_ALL_ROWS");
0 голосов
/ 24 января 2011

Извините, и это не относится к Hibernate, но когда я работал с iBatis, - есть ситуация, о которой вы точно пишете. Несколько xml (частично сгенерированных) файлов, содержащих запросы SQL, которые легко использовать в DAO

...