Pessoal estou com um problema. Tenho um método marcar atividade, o que quero fazer basicamente nesse método é mudar um atributo de um objeto que eu armazenei no banco de dados, especificamente quero setar o endereço de uma outra imagen pra exibir essa imagem quando esse método for chamado. Alguém pode me ajudar, fiz dessa forma aí mas não está dando certo, acredito que exista outra forma. Desde já agradeço.
package com.tasklist.controller;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.tasklist.model.Atividade;
import com.tasklist.util.HibernateUtil;
@ManagedBean (name = "atividadeBean")
@SessionScoped
public class AtividadeController {
private Atividade atividade = new Atividade();
private List<Atividade> listaAtividades = inserirNaTabela();
private Session sessao;
private Transaction transacao;
public String MarcarAtividade(){
abreConexao();
atividade.setImagem("/checked.jpg");
if(atividade.getImagem().equals("/unchecked.jpg")){
atividade.setImagem("/checked.jpg");
}
else{
atividade.setImagem("/unchecked.jpg");
}
sessao.delete(atividade);
sessao.save(atividade);
listaAtividades = inserirNaTabela();
atividade = new Atividade();
fechaConexao();
return "atualizar";
}
public String cadastrarAtividade() {
abreConexao();
sessao.save(atividade);
listaAtividades = inserirNaTabela();
atividade = new Atividade();
fechaConexao();
return "atualizar";
}
public String deletarAtividade(){
abreConexao();
sessao.delete(atividade);
listaAtividades = inserirNaTabela();
atividade = new Atividade();
fechaConexao();
return "/index.xhtml";
}
@SuppressWarnings("unchecked")
public List<Atividade> inserirNaTabela() {
List<Atividade> lista = new ArrayList<Atividade>();
abreConexao();
String hql = "FROM atividade";
Query query = sessao.createQuery(hql);
lista = query.list();
return lista;
}
public void abreConexao() {
this.sessao = HibernateUtil.getSession().getCurrentSession();
this.transacao = sessao.beginTransaction();
}
public void fechaConexao() {
this.transacao.commit();
try {
if(this.sessao.isOpen()){
this.sessao.close();
}
} catch (Exception e) {
System.out.println("Deu problema no fechamento da conexao" + e.getMessage());
}
}
public Atividade getAtividade() {
return atividade;
}
public void setAtividade(Atividade atividade) {
this.atividade = atividade;
}
public List<Atividade> getListaAtividades() {
return listaAtividades;
}
public void setListaAtividades(List<Atividade> listaAtividades) {
this.listaAtividades = listaAtividades;
}
}
Amigo, acredito que antes de entrares neste ponto, deverias te preocupar com coisas mais simples do seu projeto.
De caradeu pra ver que o seu MB é o seu Service que é o seu DAO, cara, ISSO TA ERRADDOOOOOOO. Aonde está a arquitetura em camadas? Acredito que antes de começar com esse lance de JSF e Hibernate, pelo menos saiba como organizar seu projeto corretamente, acho que vc deve pegar a apostila da Caelum sobre fundamentos Java, depois pegar um bom livro de padrões de projeto e depois ler a Apostila da Alga Works sobre JSF e Hibernate.
Se fosse eu, parava agora tudo, retrocedia e estudava o conteudo que falei acima. Seu projeto infelizmente está totalmente errado !
[quote=darksteel3000]Amigo, acredito que antes de entrares neste ponto, deverias te preocupar com coisas mais simples do seu projeto.
De caradeu pra ver que o seu MB é o seu Service que é o seu DAO, cara, ISSO TA ERRADDOOOOOOO. Aonde está a arquitetura em camadas? Acredito que antes de começar com esse lance de JSF e Hibernate, pelo menos saiba como organizar seu projeto corretamente, acho que vc deve pegar a apostila da Caelum sobre fundamentos Java, depois pegar um bom livro de padrões de projeto e depois ler a Apostila da Alga Works sobre JSF e Hibernate.
Se fosse eu, parava agora tudo, retrocedia e estudava o conteudo que falei acima. Seu projeto infelizmente está totalmente errado ![/quote]
Caro, sei que não estou seguindo nenhum padrão de projeto no meu código (muito menos o DAO). Esse é um trabalho simples e que não vai ter evolução e muito menos vai ser necessária manutenção. Já que é um trabalho para a disciplina de Gerencia de Configuração (o que interessa mais é o GCM), e tem o prazo de 2 dias. Sei utilizar padrões e geralmente utilizo com TDD, mais esse não é o caso.
Cara, tipo assim, na faculdade antigamente, tambem tive Gerencia de Configuração, mas Juro a você que se tivesse levado um troço desses, eu podia até estar utilizando o controle de versão Impecavel, mas seria reprovado de cara por falta de padrões.
Vai ate mesmo, que seja essa falta de padrão que está ocasionando o erro? Cara, n dá trabalho nenhum organizar o projeto e fazer tudo direito. Em 1 dia eu consigo fazer um CRUD com Spring Hibernate JSF e Primefaces, ainda fazendo um DAO Generico.
Vc está utilizando elementos simples, para alguem que utilizad TDD para desenvolver, não poderia estar com um problema tão pequeno como esses.
Também não estou utilizando o conceito OpenSession apesar de saber que é o ideal para o hibernate, mais como já expliquei o prazo é curto e a disciplina não friza o código e sim a documentação. Ah e já consegui resolver o problema, valeu pelas dicas apesar de eu já ter conhecimentos de camadas e java básico vou dar uma olhada no material
Pois é, já que você fez faculdade deve se lembrar também que não existe só um disciplina no semestre, então não posso passar um dia todo com o código. Mas repito vlw pelas dicas.
Opa, cara estava aqui lendo seu post, e vi o pq que o pessoal fala que o guj só tem gente ignorante heehheeheh
vc já havia justificado o pq de não usar os padroes e o cara ainda bate na tecla… tsc tsc… em fim…
mas fiquei curioso quanto a resolução do seu problema… teria como postar?
Opa, cara estava aqui lendo seu post, e vi o pq que o pessoal fala que o guj só tem gente ignorante heehheeheh
vc já havia justificado o pq de não usar os padroes e o cara ainda bate na tecla… tsc tsc… em fim…
mas fiquei curioso quanto a resolução do seu problema… teria como postar?
[/quote]
Oi cara, tudo bem.
Pois é, é meio chato isso mesmo, mas essas coisas acontecem geralmente em outras comunidades também, não é só nessa, então meio que me acostumei. Na comunidade de QT foi onde eu vi um pessoal mais compreensivo e mais legal para ajudar. Mas vamos ao que interessa. Pra fazer funcionar, e mudar o estado do objeto no banco eu utilizei o update, mas também pode-se utilizar o merge que tem pouca diferença. Abaixo o código:
[quote=Jardel.ads]A galera tenta ajudar e pega o nome de ignorante, vai entender.
BOASORTE![/quote]
Cara falando sério o cara não me ajudou nem um pouco, perguntei uma pergunta simples de JPA com hibernate, e o cara me veio com problemas de padrões de projeto, sendo que trabalho com refatoração de padrões para micro-aplicações, então creio que essa foi mais uma cartada de conhecedor do que ajuda. Ajudo na comunidade de QT com o que me perguntam e não com outras coisas que acho que o cara deveria saber.