Sugestao de Classes no Modelo ( uma ajudinha )

2 respostas
sudeval

Olá Pessoal,

To pegando um sisteminha em que eu tenho as tabelas do banco com nomes meio que fora do mundo real, e não estava querendo deixar os campos da minha classe do dominio com esses nomes(CDCLIENTE,DSCLIENTE) - (melhor codigo, descricao …), ae queria saber de vocês se isso acontece apenas comigo ou com vocês ja ocorreu também.

Queria fazer a minha classe com suas “propriedades” mais proximas do mundo real e não algo como CDCLIETE, e sim codigo, nesse projeto vamos usar JPA - Hibernate, no JPA podemos usar annotations para dizer que a propriedade X equivale a campo Y na tabela ( ne isso ?) mas ae fiquei pensando como que iria ser feito nos casos onde pro exemplo no hibernate fazemos algumas consultas utilizando um pouco do SQL, como algo do tipo:

Query query = session.createQuery("SELECT cliente FROM Cliente AS cliente WHERE cliente.cdcliente= :cdcliente");

Ali onde ele usa cdcliente, eu teria de usar cdcliente ou codigo ? o retorno ja estaria OK nas propriedades da minha classe ne isso ?

Essa maneira que eu penso em fazer é a mais correta ne isso ? ( do que sair utilizando esses nomes da propria tabela, uma vez que eu estou na modelagem do meu dominio e não seria feliz dar nomes de campos de tabelas as propriedades…)

Abraços,

Agradeço a todos :smiley:

[size=9]ps.: se esse Topico não for dessa área, favor mudar para devida área e desculpa.[/size]

2 Respostas

marcosbrandao

Como Cliente é a sua classe, você deve usar os atributos da classe para fazer consulta e não os do banco.
No seu caso esta query não vai funcionar(se cdcliente estiver mapeado para cof=digo, é claro…). Você deverá usar o atributo codigo neste caso.

@Entity
class Cliente{
     
     @Column(name=cdcliente)
     long codigo;
}
Query query = session.createQuery("SELECT cliente FROM Cliente AS cliente WHERE cliente.codigo= :cdcliente");
sudeval

Opa Marcus,

Valeu ae , uma das dúvidas sanada e quanto ao meu pensamento na construção desse modelo, está correto também ne isso ? ( pensando nessa questão de dar nomes vinculados ao “mundo real” as propriedades da classe, concordam ? ( do que usar cdcliente, titiit)

Abraços,

Criado 18 de fevereiro de 2008
Ultima resposta 19 de fev. de 2008
Respostas 2
Participantes 2