[Resolvido] Repetindo valor da FK na sessao

Pessoal

Existe a possibilidade de guardar o valor de uma FK na sessao ?
Exemplo:

Eu fiz um cadastro, gerou um valor para a FK(salvei essa fk na tabela).
Eu armazendo esse valor na sessao e fico usando esse valor ate o usuario fazer logoff.

Existe como ?

Sim, do mesmo modo como você coloca qualquer coisa na sessão.

Apenas não vejo a mínima necessidade disso. :shock:

[quote=Hebert Coelho]Sim, do mesmo modo como você coloca qualquer coisa na sessão.

Apenas não vejo a mínima necessidade disso. :shock: [/quote]
Também estou tentando imaginar o motivo dele querer fazer isso. :slight_smile:

[quote=Hebert Coelho]Sim, do mesmo modo como você coloca qualquer coisa na sessão.

Apenas não vejo a mínima necessidade disso. :shock: [/quote]

Q noticia boa… Vou explicar a vcs, mas primeiro vou mostrar o banco p vcs entenderem melhor :slight_smile:
meu banco: http://s11.postimage.org/6pawq6opv/bancodedados.png

Entao vamos la:

E tenho q repetir o codigoRequisicao(FK) na tabela item_x_requisicao enquanto o usuario estiver logado…

Pq eu to inserindo uma requisicao de cada vez … Entenderam ? Eu tenho q repetir esse codigoRequisicao
por causa da normalizacao (banco de dados)… Eh mais ou menos isso!
O metodo salvar ja ta pronto, ta cadastrando certinho nas 2 tabelas, mas eh sempre um codigoRequisicao novo (cada vez q clico em salvar ).
Ai lembrei da ta sessao… Como eu faco isso ? To empacado no sistema q eu to fazendo. Resolvendo isso eu faco o resto tranquilo :slight_smile:

Obrigado

Meu meotodo salvar

public String salvar() {	
		
		ContextoBean contextoBean = ContextoUtil.getContextoBean();  
                FacesContext context = FacesContext.getCurrentInstance(); 
       
		UsuarioRN usuarioRN = new UsuarioRN();
		RequisicaoRN requisicaoRN = new RequisicaoRN();
		ItemRN itemRN = new ItemRN();
		ItemRequisicaoRN itemRequisicaoRN = new ItemRequisicaoRN();
		StatusRN statusRN = new StatusRN();
		ItemRequisicao itemRequisicao = new ItemRequisicao();
		
		/*
		 * Salvando na tabela requisicao
		 */
		
		//pega objeto usuario (usuarioLogado)
		Usuario usuarioLogado=  usuarioRN.buscarPorLogin(contextoBean.getUsuarioLogado().getLogin()); //getUsuarioLogado
		System.out.println("objeto usuario:  " + usuarioLogado);
		requisicao.setUsuario(usuarioLogado);
	
		//Nova requisicao -> codigoStatus sempre = 1
		 codigoPendente = "pendente";
		 Status codigoStatus = statusRN.buscarPorNome(getCodigoPendente());
		 System.out.println(getCodigoPendente());
		 requisicao.setStatus(codigoStatus);
		
		 //GetDatahora do computador do cliente
		 Locale locale = new Locale("pt","BR"); 
		 GregorianCalendar calendar = new GregorianCalendar(); 
		 SimpleDateFormat formatador = new SimpleDateFormat("dd' de 'MMMMM' de 'yyyy' - 'HH':'mm'h'",locale); 
		 String df = formatador.format(calendar.getTime());
		 System.out.println(formatador.format(calendar.getTime())); 
		 requisicao.setDataHora(df);
		 requisicaoRN.salvar(requisicao);
		 
		/*
		 * Salvando na tabela item_x_requisicao
		 */
		 
		//pega objeto item (item selecionado)
		Item  itemSelecionado= itemRN.buscarItem(itemBean.getItemm());
		System.out.println(itemSelecionado);
		itemRequisicao.setItem(itemSelecionado);
		
		 // Pega codigo da requisicao
		 
		 Requisicao codigoRequisicaoAtual = requisicaoRN.buscarCodigoPendente(requisicao.getCodigo());
		 System.out.println("Codigo requisicao:" +codigoRequisicaoAtual);
		 itemRequisicao.setRequisicao(codigoRequisicaoAtual);
		 //Pega quantidade solicitada (pagina)
		 itemRequisicao.setQuantidadeSolicitada(qntSoli);
		 
		 //Save
		 itemRequisicaoRN.salvar(itemRequisicao);
	   	
		return "this.destinoSalvar";
	}

Veja q com isso - > Requisicao codigoRequisicaoAtual = requisicaoRN.buscarCodigoPendente(requisicao.getCodigo());
o metodo sempre vai pegando um codigo requisicao novo…
Como eu posso fazer do jeito q eu falei acima ? To quebrando a cabeca com isso : /

Na verdade o q eu tenho q guardar na sessao eh um objeto do tipo “Requisicao” e nao o valor de uma variavel…

Resolvido :slight_smile:

public String salvar() {

		ContextoBean contextoBean = ContextoUtil.getContextoBean();
		FacesContext context = FacesContext.getCurrentInstance();		 
		HttpSession session = (HttpSession)context.getExternalContext().getSession(false);  
	    
		System.out.println("1"+session.getAttribute("ObjetoRequisicaoSessao"));
		
		UsuarioRN usuarioRN = new UsuarioRN();
		RequisicaoRN requisicaoRN = new RequisicaoRN();
		ItemRN itemRN = new ItemRN();
		ItemRequisicaoRN itemRequisicaoRN = new ItemRequisicaoRN();
		StatusRN statusRN = new StatusRN();
		ItemRequisicao itemRequisicao = new ItemRequisicao();

		// pega objeto usuario (usuarioLogado)
		Usuario usuarioLogado = usuarioRN.buscarPorLogin(contextoBean.getUsuarioLogado().getLogin()); // getUsuarioLogado
		System.out.println("objeto usuario:  " + usuarioLogado);
		requisicao.setUsuario(usuarioLogado);
		
		// Nova requisicao -> codigoStatus sempre = 1
		codigoPendente = "pendente";
		Status codigoStatus = statusRN.buscarPorNome(getCodigoPendente());
		System.out.println(getCodigoPendente());
		requisicao.setStatus(codigoStatus); 
		
		// GetDatahora do computador do cliente
		Locale locale = new Locale("pt", "BR");
		GregorianCalendar calendar = new GregorianCalendar();
		SimpleDateFormat formatador = new SimpleDateFormat(
		"dd' de 'MMMMM' de 'yyyy' - 'HH':'mm'h'", locale);
		String df = formatador.format(calendar.getTime());
		System.out.println(formatador.format(calendar.getTime()));
		requisicao.setDataHora(df);
		
		if( session.getAttribute("ObjetoRequisicaoSessao")==null){
			requisicaoRN.salvar(requisicao);   
		    session.setAttribute("ObjetoRequisicaoSessao", requisicao);//SetObjeto na sessao  
		    itemSelecionado= itemRN.buscarItem(itemBean.getItemm());  
		    System.out.println(itemSelecionado);  
		    itemRequisicao.setItem(itemSelecionado); 
		    itemRequisicao.setRequisicao((Requisicao)session.getAttribute("ObjetoRequisicaoSessao")); 
		    itemRequisicao.setQuantidadeSolicitada(qntSoli);  
	        itemRequisicaoRN.salvar(itemRequisicao);  
	        return "this.destinoSalvar";  
		}
		else
			
			itemSelecionado= itemRN.buscarItem(itemBean.getItemm());  
			System.out.println(itemSelecionado);  
			itemRequisicao.setItem(itemSelecionado); 
			itemRequisicao.setRequisicao((Requisicao) session.getAttribute("ObjetoRequisicaoSessao"));
			itemRequisicao.setQuantidadeSolicitada(qntSoli);  
			itemRequisicaoRN.salvar(itemRequisicao);  
			return "this.destinoSalvar";  
		
	}