Ajuda plzzz metodo salvar

6 respostas
Deluxe

galera
to precisando de uma ajuda
eu to programando em JSF, spring, hibernate Annotations

To usando a seguinte arquitetura…

Bean
Facade
Dao

meu problema eh o seguinte…
meu banco de dados…
o cadastro de um usuario esta dividido em varias tabela…
exemplo
tabela pra dados pessoais
tabela pra telefones
tabela pra emails
tabela pra dados profissionais…

etc…

eu tenho uma classe de pessistencia pra cada classe
na hora de incluir o usuario…
eu tenho q fazer um metodo salvar no meu facade e no meu dao pra cada tabela?
ou tem algum jeito q vc uni tudo e salva em um objeto?

o cara aqui me falo, que eu tenho que fazer uma classe de perssistencia pra cada tabela… (isso eu ja tenho)
e ele falo pra mim por todos os dados em um pojo, e na hora de salvar mandar so o pojo… mas como eu vo mandar salvar o objeto pojo, se ele nao ta perssistido??
help

6 Respostas

fantomas

Oi Deluxe,

Deluxe:
o cara aqui me falo, que eu tenho que fazer uma classe de perssistencia pra cada tabela… (isso eu ja tenho)
e ele falo pra mim por todos os dados em um pojo, e na hora de salvar mandar so o pojo… mas como eu vo mandar salvar o objeto pojo, se ele nao ta perssistido??
help

Não sei se entendi direito, mas esse POJO com os dados deve ser um DTO (ver no google); esse objeto é um aglomerado de dados portanto quando ele chegar na fachada (FAÇADE) vc terá que OBTER os dados contidos neste objeto DTO e aplica-los nos seus objetos que serão de fato persistidos através dos DAOs.

flw

Deluxe

entao
eh uma classe de perssistencia (dto)
e a mesma classe sem perssistencia (pojo)

entao eu tenho q fazer uma classe de perssistencia pra cada tabela…
e na hora de salvar eu tenho q salvar… eu to te que salvar um objeto de persistencia de cada vez?
tipo 1 metodo salvar pra cada objeto de persistencia…
ou eu coloco todos os dados em um Pojo, e continuo fazendo uma classe de perssistencia pra cada tabela…
e na hora de salvar eu vo salvar o unico objeto pojo?
mas como meu pojo vai salvar se ele nao tem a anotacoes de perssistencia…

kinow

Olá Deluxe,

como o fantomas, eu também não entendi muito bem. Nos projetos geralmente eu trabalho com VO e DTO basicamente. O VO é o objeto que vem do Banco de Dados. Ele realmente representa uma tabela.

Já o DTO é um aglomerado de informação referente a alguma operação que tenho que fazer. No DTO pode haver informação de diversos VOs (tabelas).

Por exemplo. Tenho a tabela automóvel e a tabela fabricante. Se eu quiser um objeto que possua as informações do automóvel e ao mesmo as informações do fabricante, construirei um DTO com as informações que preciso.

Espero ter ajudado um pouco :slight_smile:
Abraços

Deluxe


public void createColaborador(Colaborador colaborador) {

getHibernateTemplate().save(colaborador);
	
 }</blockquote>

Aqui eu mando o objeto pra salvar da perssistencia ou do pojo?
pq se eu mandar o objeto da perssistencia eu vo te que fazer um metodo create pra cada objeto perssistente de cada tabela…
eu quero ter somente um metodo desse que salve todas as classes perssistente…

aaiiai
=(

F

oi deluxe,

eu entendi q vc tem uma classe pessoa q possue telefone, email… etc… vc quer saber se quando salvar pessoa vc tem q salvar o telefone e email tb???

pq vc não cria um DAO genérico e usa p/ salvar???

eu faço assim, tenho um exemplo bem parecido de contato que possui cidade…

no meu bean de contato eu tenho o método salvar assim:

public String salvar() {
		Session session = HibernateUtil.currentSession();
		Dao&lt;Contato&gt; contatoDao = new Dao&lt;Contato&gt;(session, Contato.class);
		Dao&lt;Cidade&gt; cidadeDao = new Dao&lt;Cidade&gt;(session, Cidade.class);
		
                Cidade cidade = cidadeDao.load();
		contato.setCidade(cidade);		
			
		contatoDao.merge(this.contato);
		this.contato = new Contato();
		
		return "ok";
	}

no meu dao genérico:

public T load(Long id) {
		return (T) session.load(persistentClass, id);
	}

public void merge(T t){
		session.merge(t);  
	}

é isso q vc precisa???

fantomas

Oi Deluxe,

deluxe:
Aqui eu mando o objeto pra salvar da perssistencia ou do pojo?
pq se eu mandar o objeto da perssistencia eu vo te que fazer um metodo create pra cada objeto perssistente de cada tabela…
eu quero ter somente um metodo desse que salve todas as classes perssistente…

Então…estou achando que vc está com problemas de conceito. POJO = Plain Old Java Object http://pt.wikipedia.org/wiki/Plain_Old_Java_Objects para saber mais.

Pois bem, como já foi dito anteriormente, suponha que vc tenha uma classe Pessoa e outra Telefone e tenha em mãos 2 objetos, 1 de cada classe e esses dois objetos estão associados.
SE eles estiverem mapeados através de xml ou anotações e vc aplicar uma operação que persista o objeto do tipo Pessoa a JPA/Hibernate irá registrar tanto o objeto do tipo Pessoa quanto o do tipo Telefone, ou seja, vc não precisa aplicar uma operação para persistir o objeto do tipo Telefone. Isto acontece porque no mapeamento das classes vc descreveu que os 2 objetos estão associados logo o mecanismo de persistencia irá navegar nas instancias associadas persistindo essas instancias caso seja necessário.

Espero ter ajudado.

P.S. Se o que eu escrevi acima estiver estreitamente relacionado à sua duvida, aconcelho vc a comprar/pedir emprestado um livro ou um bom tutorial sobre persistencia o mais rápido possível.

[]'s

Criado 8 de agosto de 2008
Ultima resposta 8 de ago. de 2008
Respostas 6
Participantes 4