java hibernate хранит sql запросы в xml файле

Я пытаюсь поместить все SQL-запросы в XML-файл. Я использую Spring boot и hibernate с нативным SQLS

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

Я использую Java-конфигурацию в приложении.

Файл конфигурации выглядит следующим образом:

@SpringBootApplication
@PropertySources({
        @PropertySource(value = "classpath:application.properties")
})

@EnableAutoConfiguration`enter code here`
@Configuration
public class BootApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(BootApplication.class);
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(BootApplication.class, args);
    }

    @Bean
    public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf) {
        return hemf.getSessionFactory();
    }
}

XML-файл находится ниже:

<?xml version="1.0" encoding="UTF-8"?>
<properties>
    <entry key="getUsersById">
        <![CDATA[
        Select * From User
        Where id =?
    ]]>

    </entry>
    <entry key="getPersonBySSN">
        <![CDATA[
    ]]>
    </entry>
</properties>

Ниже приведен код спящего режима Java без перемещения файла sql в xml. Мне нужно переместить файл sqls в xml, так как в приложении много запросов.

public List<User> getUsers(String id) {
                List<User> users = new ArrayList<User>();
                try {
                    String sql = "Select * From User Where id =?";
                    SQLQuery query = getSession().createSQLQuery(sql);
                    query.setParameter(0, id);                  query.setResultTransformer(Transformers.aliasToBean(User.class))
                    users = (List<User>) query.list();
                } catch (Exception e) {
                    logger.error("Error", e);
                }
                return users;
            }

Может кто-нибудь, пожалуйста, привести пример, чтобы переместить SQL-запросы в XML-файл и использовать его Java-код?

1 ответ

Почему просто использовать именованный запрос:

<sql-query name="getUsersById">
    <return alias="user" class="your class"/>
    <![CDATA[ Select * From User
        Where id =?]]>
</sql-query>
Другие вопросы по тегам