1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

não insere o campo "nome" no banco(mas estava funcionando...)

Bom dia, pessoal. Tudo estava certo aqui. Deu pau do nada. Não está inserindo o nome no banco. Insere email, senha e perfil, mas o nome não. Já revisei todas as classes 4 vezes, e não consigo ver o erro. Alguém pode dar uma força por favor?

Página de cadastro:

<h:form id="form" enctype="multipart/form-data">
        <p:growl id="msgs" showDetail="false" showSummary="true" />

        <p:panel>

        <!-- PAINEL DE CADASTRO DOS USUARIOS -->

            <h:panelGrid columns="2">
                <h:outputText value="Nome:" />
                <p:inputText  value="#{mbUsuario.usuario.nome}" />

                <h:outputText value="E-mail:" />
                <p:inputText  value="#{mbUsuario.usuario.email}" />

                <h:outputText value="Senha:" />
                <p:password  value="#{mbUsuario.usuario.senha}" />

                <h:outputText value="Perfil:" />
                <p:selectOneMenu  value="#{mbUsuario.usuario.perfil}" style="margin-left:4%;">
                            <f:selectItem itemLabel="SÍNDICO" itemValue="1" />
                            <f:selectItem itemLabel="PROP/MORADOR" itemValue="2" />
                            <f:selectItem itemLabel="ADMINISTRADOR" itemValue="3" />
                </p:selectOneMenu>

                <p:commandButton value="Salvar" action="#{mbUsuario.salvaUsuario()}"
                    update=":form:msgs, :form:dtUsuarios, :form"/>
                <p:commandButton value="Limpar" onclick="form.reset()" />
            </h:panelGrid>
        </p:panel>

        <!-- TABELA PARA EXIBIÇÃO DOS USUARIOS -->

        <p:dataTable  value="#{mbUsuario.usuarios}" var="p" id="dtUsuarios"
            style="text-align: center;" emptyMessage="Nenhum usuário cadastrado." paginator="true">


            <p:column headerText="Nome" style="width:10%">
                <h:outputText value="#{p.nome}" />
            </p:column>

            <p:column headerText="E-mail" style="width:20%">
                <h:outputText value="#{p.email}" />
            </p:column>

            <p:column headerText="Senha" style="width:10%">
                <h:outputText value="#{p.senha}" />
            </p:column>

            <p:column headerText="Perfil" style="width:10%">
                <h:outputText value="#{p.perfil}" />
            </p:column>

            <p:column style="width:4%">
                <p:commandButton id="addButton" update=":form:infoFoto"
                    onclick="PF('fotoDialog').show();" icon="ui-icon-plus"
                    title="Adicionar imagens">
                    <f:setPropertyActionListener value="#{p}"
                        target="#{mbUsuario.usuarioSelecionado}" />
                </p:commandButton>

                <p:spacer width="10" />

                <p:commandButton id="showButton" update=":form:infoUsuario"
                    onclick="PF('usuarioDialog').show();" icon="ui-icon-search"
                    title="Visualizar imagens" action="#{mbUsuario.listaFotosUsuario()}">
                    <f:setPropertyActionListener value="#{p}"
                        target="#{mbUsuario.usuarioSelecionado}" />
                </p:commandButton>
            </p:column>

            <!-- BOTAO ALTERAR -->

            <p:column style="width:1%">
                <p:commandLink  action="editarUsuario" actionListener="#" title="Alterar Usuário" 
                onclick="PF('dialogoEditaUsuario').show();"  >
                    <p:graphicImage value="../resources/imagens/editar.ico"/>
                      <f:param name="id" value="#{usuario}" /> 
                </p:commandLink>
            </p:column>
        </p:dataTable>

E agora, do nada, começou a aparecer ponto de exclamação amarelo dizendo que "nome", "email", "senha" e "perfil" can not be resolved. Mas ontem deu tudo certo. Agora insere tudo no banco, menos o nome.

Classe Bean:

@ManagedBean(name = "mbUsuario")
@SessionScoped
@ViewScoped
public class UsuarioBean implements Serializable {
    private static final long serialVersionUID = 1L;

    private List<Usuarios> usuarios;
    private Usuarios usuario = new Usuarios();
    private Usuarios usuarioSelecionado = new Usuarios();
    private UsuarioDAO usuarioDAO;


    public UsuarioBean() {
        usuarioDAO = new UsuarioDAO();

        usuarios = usuarioDAO.listAll();
    }

    public void setUsuarios(List<Usuarios> usuarios) {
        this.usuarios = usuarios;
    }

    public void salvaUsuario() {

        try {
            usuarioDAO.save(usuario);
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            usuario = new Usuarios();
            usuarios = usuarioDAO.listAll();

            FacesContext.getCurrentInstance().addMessage(
                    null,
                    new FacesMessage(FacesMessage.SEVERITY_INFO,
                            "Usuário adicionado", "Usuário adicionado"));
        }
    }










    public Usuarios getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuarios usuario) {
        this.usuario = usuario;
    }

    public List<Usuarios> getUsuarios() {
        return usuarios;
    }

    public Usuarios getUsuarioSelecionado() {
        return usuarioSelecionado;
    }

    public void setUsuarioSelecionado(Usuarios usuarioSelecionado) {
        this.usuarioSelecionado = usuarioSelecionado;
    }

Classe dao:

public class UsuarioDAO implements Serializable {
    private static final long serialVersionUID = 1L;

    protected Session session;

    public void save(Usuarios p) {
        session = HibernateUtil.getSessionfactory().openSession();

        try {
            session.getTransaction().begin();
            session.save(p);
            session.getTransaction().commit();

        } catch (HibernateException ex) {
            ex.printStackTrace();
        } finally {
            session.close();
        }
    }

    @SuppressWarnings("unchecked")
    public List<Usuarios> listAll() {
        session = HibernateUtil.getSessionfactory().openSession();

        try {
            return session.createCriteria(Usuarios.class, "p").list();
        } catch (HibernateException ex) {
            ex.printStackTrace();
        } finally {
            session.close();
        }

        return null;
    }

Uma noite inteira perdida com uma coisa que ontem tava pronta... é... vamos em frente!

  • Já limpou o projeto e o server? Tenta isso. Já tive problemas beem parecidos com primefaces e isso resolveu.

    AndersonLira   20 de set de 2014
  • dei um clean, e clean tomcat workspace várias vezes. Reiniciei, mas nada... até um colega de trabalho me ajudou aqui, e não achou o erro. Cadastra tudo, MENOS o nome... acho q vou guardar essas classes, apagar e ir recriando de novo. vai ser o jeito...

    FredeRamos   20 de set de 2014
  • mais uma coisa. Limpa o histórico do navegador também. Apanhei nisso também certa vez. Cheguei até renomear projeto, trocar de lugar e tals. Uma imagem no meu aplicativo não atualizava de jeito nenhum. Só resolveu quando limpei o histórico dos 2 navegadores que estava testando.

    AndersonLira   20 de set de 2014
  • boa. vou tentar agora.

    FredeRamos   20 de set de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java-ee ou faça a sua própria pergunta.