Pergunta

Estou à procura de um rápido (muito rápido) forma de teste muda para hibernar consultas. Eu tenho um enorme aplicação com milhares de diferentes consultas HQL (em arquivos XML) e 100 + classes mapeadas e eu não quero para reimplantar o aplicativo inteiro para apenas um teste mudança pequena para uma consulta.

Como é que um olhar boa configuração como para me libertar de uma reafectação e permitir uma verificação de consulta rápida?

Foi útil?

Solução

Com IntelliJ IDEA 8.1.3 do mechnism de escolha é chamado de 'faceta'. Para instantaneamente consultas HQL teste:

  1. criar uma fonte de dados Ferramentas -> Fonte de Dados, Adicionar fonte de dados, definir motorista, nome de usuário e senha de yor desenvolvimento db
  2. no caso de você não já tem um hibernate.cfg ou você configurar sua fábrica de sessão de uma maneira diferente do que via xml: criar um arquivo hibernate.cfg referenciando todos mapeamento XML do (definir um nome para a fábrica de sessão, apenas para facilitar o manuseio )
  3. em 'Estrutura do Projeto' adicionar Facet ao seu módulo de escolha e atribuir a fonte de dados recém-definido para a nova faceta
  4. para Java EE Ver
  5. Abra Hibernate Facetas - Nó
  6. Clique direito fábrica Session e escolha "Abrir HQL Console"
  7. introduzir consulta HQL em consola ... e seu está feito.

pena de esta questão RTFM.

Outras dicas

Você pode usar Hibernate Tools no Eclipse para executar consultas. Isto irá permitir que você execute HQL sempre que você quer tentar algo.

Se você estiver usando IntelliJ, há Hibero .

Há um autônomo editor de sol, mas eu não tentei.

Eu escrevi uma ferramenta simples para teste e HQL prévia, esta é apenas uma classe java com o método principal.

Você pode encontrar o código aqui: https://github.com/maheskrishnan/HQLRunner

aqui está a captura de tela ...

enter descrição da imagem aqui

Eu testar minhas consultas HQL na unidade-testes com o banco de dados HSQLDB. Basta criar um gerenciador de entidades, lançá-lo para uma sessão de hibernação e consulta de distância.

    final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tacs-test", props);

    final EntityManager entityManager = entityManagerFactory.createEntityManager();

    return (Session)entityManager.getDelegate();

Melhor Anders

Você disse que a maneira mais rápida, eu não tenho certeza se você significou a maneira mais rápida para começar, ou a maneira mais rápida para realizar testes em curso, com algum investimento inicial para obter os testes implementados. Esta resposta é mais o último.

A maneira que eu fiz isso antes era implementar alguns testes de integração simples com JUnit e DBUnit .

Em essência, você estará usando DBUnit para configurar seu banco de dados de teste com um conjunto conhecido e representativo de dados e, em seguida, JUnit simples para exercer os métodos que contém suas consultas HQL, e verificar os resultados.

Por exemplo,

Configurar seu banco de dados primeiro a conter apenas um conjunto fixo de dados v.g..,

Product Name, Price
Acme 100 Series Dynamite, $100
Acme 200 Series Dynamite, $120
Acme Rocket, $500

Este é algo que você faria na configuração do seu caso de teste JUnit () método.

Agora vamos supor que você tem um DAO para esta entidade, e há uma "findProductWithPriceGreaterThan (int)" método. Em seu teste, você faria algo como:

public void testFindProductWithPriceGreaterThanInt() {
    ProductDAO dao = new HibernateProductDAO();
    //... initialize Hibernate, or perhaps do this in setup()

    List products = dao.findProductWithPriceGreaterThan(110);
    assertEquals(2, products.size());
    //... additional assertions to verify the content of the list.
}

No mercado eclipse, você pode procurar JBoss Tools e só escolher Hibernate ferramentas da lista dada.

Em eclipse

  1. Instale ferramentas do Hibernate (Jboss)
  2. Mudar para hibernar perpective
  3. Open / clique na janela de configuração do Hibernate
  4. Rt Clique na janela e Adicionar Configuração
  5. Rt Clique na janela clique / editor HQL aberta
  6. Tipo e executar suas consultas HQL e obter o seu resultado na janela de resultado de consulta do Hibernate

Siga este link para mais informações http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top