2010-10-05 4 views
2

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

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

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

Любые предложения?

ответ

2

Вы, можете использовать, используя собственные SQL-запросы с Hibernate. See here

В противном случае, вы можете хранить ваши запросы в .properties файла (ов), а также загружать их в приложение-широкий Map, которые вы можете привнести в ваши бобы.

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

+0

Я использовал свойство PropertiesFactoryBean для загрузки файла свойств и ввода его в свой DAO. –

1

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

@Entity 
@Indexed 
@NamedQueries(
    @NamedQuery(name = "MyDomainObject.myNamedQuery", query = "select id from MyDomainObject where myProperty.id = :propertyId") 
) 
public class MyDomainObject { 
    ... 
} 
+0

Я не могу использовать структуру сохранения или я бы сделал что-то вроде этого. –

Смежные вопросы