Técnico

SQL nativa no Hibernate e beans não gerenciados

Em projeto recente foi necessário requisitar objetos em um banco legado os quais não eram entidades gerenciadas pelo Hibernate mas sim por outro software.

Mapear estes objetos como novas entidades e criar Criteria’s ou HQL’s com base em SQL’s prontas enviadas pelo cliente seria custoso. Como o projeto não era resposável por manter estes objetos sincronizados com o banco, seria interessante utilizar as SQL’s prontas em beans não gerenciados pelo Hibernate.

Após pesquisar na documentação do Hibernate, achei uma solução interessante caso seja necessário utilizar SQL nativa:


public List getUsers() {

SQLQuery query = session.createSQLQuery("select DS_NAME as name, DS_DESCRIPTION as description, ST_AGE as age from t_users");

query.addScalar("name");
query.addScalar("description");
query.addScalar("age", Hibernate.LONG);

query.setResultTransformer( Transformers.aliasToBean( UserDTO.class ) );

List users = query.list();
return users;

}


public class UserDTO {

private String name;
private String description;
private Long age;

//getters n' setters

}

Native SQL Chapter: http://www.hibernate.org/hib_docs/reference/en/html/querysql.html

Autor(a)

Bruno Fuster

Comentários (2)

  1. Henrique Marino
    1 de abril de 2009

    Valeu Bruno, precisei usar isso hj!!

    Abraço

  2. Fabio
    2 de abril de 2009

    Bruno,
    pede pro Thiago Felix postar as outras partes dos videos de Silverlight (Silverlight Screencast – Amazon)?
    O ultimo post foi em Janeiro, já passou muito tempo 🙂
    Valeuu

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *