@GenericGenerator(name = "sequenciador", strategy = "increment") so esta gravando o Id no banco

2 respostas
R

Boa tarde Galera,

Criei um sequenciador generico na minha entidade pra incrementar o valor do meu ID, ele esta funcionando normal esta incrementado, mais estou com dificuldades pra inserir os campos no bando ele so esta gravando o Id. Ao digitar os valores na página de cadastro (nome, data e etc) e clico no buttom "confirmar" ele so esta gravando o Id alguem pode me ajudar? os códigos encontra- se abaixo:

ManagerBean
import java.util.List;
import secretaria.dao.CadSecretariaDAO;
import secretaria.entidade.CadastrarSecretaria;

public class Secretaria {

    private List<CadastrarSecretaria> cachedCadSecretarias = null;
    private CadSecretariaDAO cad = new CadSecretariaDAO();
    private CadastrarSecretaria selectedSecretaria;

    public List<CadastrarSecretaria> getCachedCadSecretaria() {
        if (cachedCadSecretarias == null){

            cachedCadSecretarias = cad.getCadSecretarias();
        }

        return cachedCadSecretarias;
    }

     public String doConfirmaCadSecretaria(){
        selectedSecretaria = new CadastrarSecretaria();
        return "NovoUsuario";
    }

     public String finishConfirmaCadSecretaria(){
       cad.addCadastrarSecretaria(selectedSecretaria);
       cachedCadSecretarias = null;
       return "ListCadSecretaria";
       
    }

     public CadastrarSecretaria getSelectedSecretaria() {
        return selectedSecretaria;
    }

     public void setSelectedSecretaria(CadastrarSecretaria selectedSecretaria) {
        this.selectedSecretaria = selectedSecretaria;
    }


}
Entidade
@Entity
@Table(name = "cadsecretaria")
public class CadastrarSecretaria implements java.io.Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "codigosecretaria")
    @GenericGenerator(name = "sequenciador", strategy = "increment")
    @GeneratedValue(generator = "sequenciador")
    private Integer codigosecretaria;
    @Column(name = "nome")
    private String nome;
    @Column(name = "status")
    private String status;
    @Column(name = "codoperinc")
    private Integer codoperinc;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "datainclusao")
    private Date datainclusao;
    @Column(name = "codoperalt")
    private Integer codoperalt;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "dataalteracao")
    private Date dataalteracao;
    @OneToMany(mappedBy = "secretaria", fetch = FetchType.LAZY)
    private List<CadastrarSolicitante> cadastrarSolicitante;
    @OneToMany(mappedBy = "sectecnico", fetch = FetchType.LAZY)
    private List<CadastrarTecnico> cadastrarTecnico;
    @OneToMany(mappedBy = "cadSecretaria", fetch = FetchType.LAZY)
    private List<CadastrarEquipamento> cadastrarEquipamento;

    public List<CadastrarEquipamento> getCadastrarEquipamento() {
        return cadastrarEquipamento;
    }

    public void setCadastrarEquipamento(List<CadastrarEquipamento> cadastrarEquipamento) {
        this.cadastrarEquipamento = cadastrarEquipamento;
    }

    public List<CadastrarSolicitante> getCadastrarSolicitante() {
        return cadastrarSolicitante;
    }

    public void setCadastrarSolicitante(List<CadastrarSolicitante> cadastrarSolicitante) {
        this.cadastrarSolicitante = cadastrarSolicitante;
    }

    public List<CadastrarTecnico> getCadastrarTecnico() {
        return cadastrarTecnico;
    }

    public void setCadastrarTecnico(List<CadastrarTecnico> cadastrarTecnico) {
        this.cadastrarTecnico = cadastrarTecnico;
    }

    public Integer getCodigosecretaria() {
        return codigosecretaria;
    }

    public void setCodigosecretaria(Integer codigosecretaria) {
        this.codigosecretaria = codigosecretaria;
    }

    public Integer getCodoperalt() {
        return codoperalt;
    }

    public void setCodoperalt(Integer codoperalt) {
        this.codoperalt = codoperalt;
    }

    public Integer getCodoperinc() {
        return codoperinc;
    }

    public void setCodoperinc(Integer codoperinc) {
        this.codoperinc = codoperinc;
    }

    public Date getDatainclusao() {
        return datainclusao;
    }

    public void setDatainclusao(Date datainclusao) {
        this.datainclusao = datainclusao;
    }

      public Date getDataalteracao() {
     return dataalteracao;
     }
     public void setDataalteracao(Date dataalteracao) {
     this.dataalteracao = dataalteracao;
    }
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final CadastrarSecretaria other = (CadastrarSecretaria) obj;
        if (this.codigosecretaria != other.codigosecretaria && (this.codigosecretaria == null || !this.codigosecretaria.equals(other.codigosecretaria))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 17 * hash + (this.codigosecretaria != null ? this.codigosecretaria.hashCode() : 0);
        return hash;
    }
}
Página listar cadastrados
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:h="http://java.sun.com/jsf/html">
    <head>
        <title>Facelet Title</title>
    </head>
    <body>
        <h:form>
            <h:dataTable var="item" value="#{Secretaria.cachedCadSecretaria}">
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Codigo"/>
                    </f:facet>
                    <h:outputText value="#{item.codigosecretaria}"/>
                </h:column>
            <h:column>
                    <f:facet name="header">
                        <h:outputText value="Nome"/>
                    </f:facet>
                <h:outputText value="#{item.nome}"/>
                </h:column>
            </h:dataTable>
            <h:commandButton action="#{Secretaria.doConfirmaCadSecretaria}" value="Adicionar Usuario"/>
        </h:form>
   </body>
</html>

Página de Cadastro

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Cadastrar Secretarias</title>
    </head>
    <body title="Cadastrar Secretarias" style="background-color: green">

        <h:panelGrid columns="6">
            <rich:panel>
                <f:facet name="header">
                    <h:outputText value="CADASTROS SECRETARIAS"/>
                </f:facet>
                <a4j:form ajaxSubmit="true" reRender="name">

                    <h:inputText id="label" label="nome" size="10" style="width:auto"/>

                    <a4j:commandButton id="incluir" value="Incluir" />
                    <a4j:commandButton id="alterar" value="Alterar" />
                    <a4j:commandButton id="deletar" value="Deletar"/>
                    <a4j:commandButton id="consultar" value="Consultar" />
                    <a4j:commandButton id="confirmar" value="Confirmar" action="#{Secretaria.finishConfirmaCadSecretaria}"/>
                    <a4j:commandButton id="cancelar" action="ListCadSecretaria" value="Cancelar" />
                    <br/>
                </a4j:form><br></br>
                <h:form><br/>
                   
                    Nome:<h:inputText value="#{Secretaria.selectedSecretaria.nome}"/><br/>
                    Cod Op Inicial: <h:inputText value="#{Secretaria.selectedSecretaria.codoperinc}"/><br/>
                    Data Inclusão:<rich:calendar value="#{Secretaria.selectedSecretaria.datainclusao}" datePattern="dd/MM/yy"/><br/>
                    Status <h:inputText value="#{Secretaria.selectedSecretaria.status}"/>
                    Cod Op Alteração: <h:inputText value="#{Secretaria.selectedSecretaria.codoperalt}"/><br/>
                </h:form>

            </rich:panel>
        </h:panelGrid>

    </body>
</html>

2 Respostas

T

você está utilizando banco oracle para utilizar sequence?

no oracle qnd eu usava sequence, eu não usava GenericGenerator e sim SequenceGenerator…

funcionava tranquilo…

enfim, debuga seu método de insert e ve se está passando todos os dados corretos…

R

tandrade86:
você está utilizando banco oracle para utilizar sequence?

no oracle qnd eu usava sequence, eu não usava GenericGenerator e sim SequenceGenerator…

funcionava tranquilo…

enfim, debuga seu método de insert e ve se está passando todos os dados corretos…

Criado 26 de abril de 2010
Ultima resposta 27 de abr. de 2010
Respostas 2
Participantes 2