Где хранить большие SQL-запросы при использовании классов Spring JdbcTemplate - PullRequest
2 голосов
/ 05 октября 2010

Я занимаюсь разработкой DAO с использованием Spring JdbcDaoSupport и хотел бы узнать, может ли кто-нибудь порекомендовать наилучшую практику для экстернализации SQL из кода Java.

Я привык использовать Hibernate и iBatis для такого родапроекта и как способ, которым запросы не хранятся в коде Java.Из-за сложности доступа к данным (доступа к разным БД на разных серверах) Я не могу использовать в этом проекте фреймворк, такой как Hibernate / JPA / iBatis , и чувствую, что JDBC в любом случае гораздо лучше подходит.

Я подумал о внедрении запросов, но это привело бы к ужасным файлам конфигурации Spring, и мои конфигурации с юнит-тестами стали бы бременем для управления.Я действительно не хочу писать анализатор XML только для этого, и файлы свойств становятся немного грязными, когда значения разбиты на несколько строк.

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Вы можете использовать собственные запросы SQL с Hibernate. См. Здесь

В противном случае вы можете хранить свои запросы в .properties файлах и загружать их в Map всего приложения, которые вы можете добавить в свои бобы.1009 *

Вы также можете использовать любой формат XML по вашему выбору и легко анализировать его с помощью commons-configuration .

1 голос
/ 05 октября 2010

Как насчет использования аннотаций JPA для хранения (более сложных) запросов в виде именованных запросов на объектах домена?

@Entity
@Indexed
@NamedQueries(
    @NamedQuery(name = "MyDomainObject.myNamedQuery", query = "select id from    MyDomainObject where myProperty.id = :propertyId")
)
public class MyDomainObject {
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...