Hibernate, aliases
Pergunta
Eu observei que o Hibernate gera diferentes apelidos para as mesmas colunas cada vez que eu tento acessar a mesma tabela:
Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Hibernate: select person0_.id as id4_0_, person0_.nam as nam4_0_, person0_.fam as fam4_0_, person0_.otc as otc4_0_ from web_db.Person person0_ where person0_.id=?
Existe alguma maneira de obter para hibernar para gerar aliases idênticos para consultas idênticas? Por exemplo:
Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Solução
Tenha um olhar em HHH-2448 que abrange este tema e tem um patch para a geração de alias determinista.
Outras dicas
De qualquer forma, a minha solução - chamado consultas, onde vou especificam como selecionar dados explicitamente ...
Em primeiro lugar, estou usando o Oracle 9i.
Diferentes consultas provoca servidor para fazer parse duro. Se há muitas dessas consultas, de responsabilidade do servidor de banco de dados é cair. Temos que usar variáveis ??de ligação para evitar este problema.
Resposta curta: Não
Por quê?
Esse é o ponto, não é? Você está captada a partir das instruções de consulta real.