Meu formulário não adiciona no no banco de dados. Será que alguém pode dar uma olhada nos códigos. Desde já agradeço!
Aqui o formulário!
<h:form id="cadastroObra">
<p:panelGrid columns="2" styleClass="semBorda">
<p:outputLabel value="Código da Obra" for="codigoObra"><br/>
<p:inputText id="codigoObra" value="#{obraMB.obra.codigoObra}" maxlength="5" required="true" requiredMessage="Campo código da obra é obrigatorio."/>
</p:outputLabel>
<p:outputLabel value="Código Lapelinc" for="codigoLapelinc"><br/>
<p:inputText id="codigoLapelinc" value="#{obraMB.obra.codigoLapelinc}" maxlength="7" required="true" requiredMessage="Campo código do Lapelinc é obrigatorio."/>
</p:outputLabel>
</p:panelGrid>
<p:panelGrid columns="2" styleClass="semBorda">
<p:outputLabel value="Título" for="titulo"/>
<p:inputText id="titulo" value="#{obraMB.obra.titulo}" maxlength="50" required="true" requiredMessage="Campo título é obrigatorio."/>
</p:panelGrid>
<p:panelGrid columns="6" styleClass="semBorda">
<p:outputLabel value="Tipo de Documento" for="tipoDocumento"/>
<p:inputText id="tipoDocumento" value="#{obraMB.obra.tipodocumento}" maxlength="30" required="true" requiredMessage="Campo tipo de documento é obrigatorio."/>
<p:outputLabel value="Ano Inicial" for="anoInicial"/>
<p:inputText id="anoInicial" value="#{obraMB.obra.ano1}" maxlength="4" required="true" requiredMessage="Campo ano inicial é obrigatório."/>
<p:outputLabel value="Ano Final" for="anoFinal"/>
<p:inputText id="anoFinal" value="#{obraMB.obra.ano2}" maxlength="4" required="true" requiredMessage="Campo ano final é obrigatorio."/>
</p:panelGrid>
<p:panelGrid columns="6" styleClass="semBorda">
<p:outputLabel value="Altura" for="altura"/>
<p:inputText id="altura" value="#{obraMB.obra.altura}" maxlength="6" required="true" requiredMessage="Campo altura é obrigatório."/>
<p:outputLabel value="Largura" for="largura"/>
<p:inputText id="largura" value="#{obraMB.obra.largura}" maxlength="6" required="true" requiredMessage="Campo largura é obrigatorio."/>
<p:outputLabel value="Profundidade" for="profundidade"/>
<p:inputText id="profundidade" value="#{obraMB.obra.profundidade}" maxlength="6" required="true" requiredMessage="Campo profundidade é obrigatório."/>
</p:panelGrid>
<p:panelGrid columns="4" styleClass="semBorda">
<p:outputLabel value="Material da Capa" for="materialCapa"/>
<p:inputText id="materialCapa" value="#{obraMB.obra.materialCapa}" maxlength="20" required="true" requiredMessage="Campo material ds capa é obrigatório."/>
<p:outputLabel value="Cor da Capa" for="corCapa"/>
<p:inputText id="corCapa" value="#{obraMB.obra.corCapa}" maxlength="10" required="true" requiredMessage="Campo cor da capa é obrigatorio."/>
</p:panelGrid>
<p:panelGrid columns="2" styleClass="semBorda">
<p:outputLabel value="Número de Páginas" for="numeroPaginas"/>
<p:inputText id="numeroPaginas" value="#{obraMB.obra.numeroPaginas}" maxlength="5" required="true" requiredMessage="Campo número de páginas é obrigatório."/>
</p:panelGrid>
<p:panelGrid columns="2" styleClass="semBorda">
<p:outputLabel value="Observações" for="observacoes"/>
<p:inputText id="observacoes" value="#{obraMB.obra.observacoes}" maxlength="500"/>
</p:panelGrid>
<p:panelGrid columns="2" styleClass="semBorda">
<p:outputLabel value="Codogo Usuario" for="codigoUsuario"/>
<p:inputText id="codigoUsuario" value="#{obraMB.obra.codigoUsuario}"/>
</p:panelGrid>
<p:commandButton action="#{obraMB.salvar()}" value="Salvar"/>
<p:messages/>
</h:form>
Aqui está o Bean
@ManagedBean
public class ObraMB {
private Obra obra;
private List<Obra> lista;
public Obra getObra() {
return obra;
}
public void setObra(Obra obra) {
this.obra = obra;
}
public List<Obra> getLista() {
return lista;
}
public void setLista(List<Obra> lista) {
this.lista = lista;
}
public void salvar(){
ObraDAO dao = new ObraDAO();
dao.salvar(obra);
inicializar();
}
@PostConstruct
public void inicializar(){
ObraDAO dao = new ObraDAO();
lista = dao.listar();
obra = new Obra();
}
}
Aqui está o DAO
public class ObraDAO {
public void salvar(Obra obra){
Session sessao = HibernateUtil.getSessionFactory().openSession();
sessao.beginTransaction();
sessao.persist(obra);
sessao.getTransaction().commit();
sessao.close();
}
public List<Obra> listar(){
Session sessao = HibernateUtil.getSessionFactory().openSession();
List<Obra> lista = sessao.getNamedQuery("Obra.findAll").list();
sessao.close();
return lista;
}
}
Aqui está a classe Obra.
@Entity
@Table(name = "obra")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Obra.findAll", query = "SELECT o FROM Obra o")
, @NamedQuery(name = "Obra.findByCodigoObra", query = "SELECT o FROM Obra o WHERE o.codigoObra = :codigoObra")
, @NamedQuery(name = "Obra.findByLargura", query = "SELECT o FROM Obra o WHERE o.largura = :largura")
, @NamedQuery(name = "Obra.findByTipodocumento", query = "SELECT o FROM Obra o WHERE o.tipodocumento = :tipodocumento")
, @NamedQuery(name = "Obra.findByMaterialCapa", query = "SELECT o FROM Obra o WHERE o.materialCapa = :materialCapa")
, @NamedQuery(name = "Obra.findByProfundidade", query = "SELECT o FROM Obra o WHERE o.profundidade = :profundidade")
, @NamedQuery(name = "Obra.findByTitulo", query = "SELECT o FROM Obra o WHERE o.titulo = :titulo")
, @NamedQuery(name = "Obra.findByObservacoes", query = "SELECT o FROM Obra o WHERE o.observacoes = :observacoes")
, @NamedQuery(name = "Obra.findByCorCapa", query = "SELECT o FROM Obra o WHERE o.corCapa = :corCapa")
, @NamedQuery(name = "Obra.findByAltura", query = "SELECT o FROM Obra o WHERE o.altura = :altura")
, @NamedQuery(name = "Obra.findByNumeroPaginas", query = "SELECT o FROM Obra o WHERE o.numeroPaginas = :numeroPaginas")
, @NamedQuery(name = "Obra.findByAno2", query = "SELECT o FROM Obra o WHERE o.ano2 = :ano2")
, @NamedQuery(name = "Obra.findByAno1", query = "SELECT o FROM Obra o WHERE o.ano1 = :ano1")
, @NamedQuery(name = "Obra.findByCodigoLapelinc", query = "SELECT o FROM Obra o WHERE o.codigoLapelinc = :codigoLapelinc")})
public class Obra implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "codigo_obra")
private Integer codigoObra;
//@Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
@Column(name = "largura")
private Float largura;
@Column(name = "tipodocumento")
private String tipodocumento;
@Column(name = "material_capa")
private String materialCapa;
@Column(name = "profundidade")
private Float profundidade;
@Column(name = "titulo")
private String titulo;
@Column(name = "observacoes")
private String observacoes;
@Column(name = "cor_capa")
private String corCapa;
@Column(name = "altura")
private Float altura;
@Column(name = "numero_paginas")
private Integer numeroPaginas;
@Column(name = "ano2")
private Integer ano2;
@Column(name = "ano1")
private Integer ano1;
@Column(name = "codigo_lapelinc")
private String codigoLapelinc;
@JoinColumn(name = "codigo_usuario", referencedColumnName = "codigo_usuario")
@ManyToOne
private Usuario codigoUsuario;
@OneToMany(mappedBy = "codigoObra")
private Collection<Observacao> observacaoCollection;
public Obra() {
}
public Obra(Integer codigoObra) {
this.codigoObra = codigoObra;
}
public Integer getCodigoObra() {
return codigoObra;
}
public void setCodigoObra(Integer codigoObra) {
this.codigoObra = codigoObra;
}
public Float getLargura() {
return largura;
}
public void setLargura(Float largura) {
this.largura = largura;
}
public String getTipodocumento() {
return tipodocumento;
}
public void setTipodocumento(String tipodocumento) {
this.tipodocumento = tipodocumento;
}
public String getMaterialCapa() {
return materialCapa;
}
public void setMaterialCapa(String materialCapa) {
this.materialCapa = materialCapa;
}
public Float getProfundidade() {
return profundidade;
}
public void setProfundidade(Float profundidade) {
this.profundidade = profundidade;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getObservacoes() {
return observacoes;
}
public void setObservacoes(String observacoes) {
this.observacoes = observacoes;
}
public String getCorCapa() {
return corCapa;
}
public void setCorCapa(String corCapa) {
this.corCapa = corCapa;
}
public Float getAltura() {
return altura;
}
public void setAltura(Float altura) {
this.altura = altura;
}
public Integer getNumeroPaginas() {
return numeroPaginas;
}
public void setNumeroPaginas(Integer numeroPaginas) {
this.numeroPaginas = numeroPaginas;
}
public Integer getAno2() {
return ano2;
}
public void setAno2(Integer ano2) {
this.ano2 = ano2;
}
public Integer getAno1() {
return ano1;
}
public void setAno1(Integer ano1) {
this.ano1 = ano1;
}
public String getCodigoLapelinc() {
return codigoLapelinc;
}
public void setCodigoLapelinc(String codigoLapelinc) {
this.codigoLapelinc = codigoLapelinc;
}
public Usuario getCodigoUsuario() {
return codigoUsuario;
}
public void setCodigoUsuario(Usuario codigoUsuario) {
this.codigoUsuario = codigoUsuario;
}
@XmlTransient
public Collection<Observacao> getObservacaoCollection() {
return observacaoCollection;
}
public void setObservacaoCollection(Collection<Observacao> observacaoCollection) {
this.observacaoCollection = observacaoCollection;
}
@Override
public int hashCode() {
int hash = 0;
hash += (codigoObra != null ? codigoObra.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Obra)) {
return false;
}
Obra other = (Obra) object;
if ((this.codigoObra == null && other.codigoObra != null) || (this.codigoObra != null && !this.codigoObra.equals(other.codigoObra))) {
return false;
}
return true;
}
@Override
public String toString() {
return "br.edu.ifba.dovicMaker.entidade.Obra[ codigoObra=" + codigoObra + " ]";
}
}