Preciso de ajuda nao estou conseguindo inserir data no banco de dados com hibernate annotations

7 respostas
A
Estou fazendo dessa maneira :

mport java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.type.DateType;

import sun.text.resources.FormatData;
import sun.text.resources.FormatData_pt_BR;

@Entity
@Table (name="projeto", schema="public" )
@SequenceGenerator(name="SEQ" ,sequenceName="projeto_idprojeto_seq")
public class Projeto extends BeanAbstrato{
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO ,generator="SEQ")
	@Column(name="idprojeto")
	private Integer idProjeto;
	@Column(name="cliente_idcliente")
	private Integer idCliente;
	@Column(name="nomeprojeto")
	private String nomeProjeto;
	@Column(name="descricaoprojeto")
	private String descricaoProjeto;
	@Column(name="dtinicio", nullable=false)
	@Temporal(TemporalType.DATE)
	private Date dtInicio;
	@Column(name="dtfim ", nullable=false)
	@Temporal(TemporalType.DATE)
	private Date dtFim ;
	@Column(name="dtinicioprev", nullable=false)
	@Temporal(TemporalType.DATE)
	private Date dtInicioPrev ;
	@Column(name="dtfimprev" , nullable=false)
	@Temporal(TemporalType.DATE)
	private Date dtFimPrev ;
	@Column(name="diasprojeto")
	private Integer diasProjeto;
	@Column(name="semanasprojeto")
	private Integer semanasProjeto;
	
	@OneToMany(mappedBy="projeto")
	private List<ArquivoProjeto>arquivoProjeto;
	
	@OneToMany(mappedBy="projeto")
	private List<FasesProjeto>fasesProjeto;
	
	
	@ManyToOne(fetch=FetchType.EAGER , targetEntity=Cliente.class)
	@JoinColumn(name="cliente_idcliente", updatable=false, insertable=false ,nullable=false)
	@Fetch(FetchMode.JOIN)
	@Cascade(CascadeType.SAVE_UPDATE)
	private Cliente cliente;
	
	@ManyToMany(mappedBy="projeto")
	@JoinTable(name="contatoProjeto",
	joinColumns=@JoinColumn( name="idProjeto", referencedColumnName="idProjeto"),
	inverseJoinColumns=@JoinColumn(name="idContato",referencedColumnName="idContato")) 
	private List<Contato>contato;

	@ManyToMany(mappedBy="projeto")
	@JoinTable(name="projetoTecnologia",
	joinColumns=@JoinColumn( name="idProjeto", referencedColumnName="idProjeto"),
	inverseJoinColumns=@JoinColumn(name="idTecnologia",referencedColumnName="idTecnologia")) 
	private List<Tecnologia>tecnologia;
	
	@ManyToMany(mappedBy="projeto")
	@JoinTable(name="participaProjeto",
	joinColumns=@JoinColumn( name="idProjeto", referencedColumnName="idProjeto"),
	inverseJoinColumns=@JoinColumn(name="idFuncionario",referencedColumnName="idFuncionario")) 
	private List<Funcionario>funcionario;
	
	@ManyToMany(mappedBy="projeto")
	@JoinTable(name="parceiroProjeto",
	joinColumns=@JoinColumn( name="idProjeto", referencedColumnName="idProjeto"),
	inverseJoinColumns=@JoinColumn(name="idParceiro",referencedColumnName="idParceiro")) 
	private List<Parceiro>parceiro;
	
	public Projeto(){
		
	}
	
	public Integer getIdCliente() {
		return idCliente;
	}
.....
	public Date getDtInicio() {
		return dtInicio;
	}
	public void setDtInicio(Date dtInicio) {
		this.dtInicio = dtInicio;
	}
	public Date getDtFim() {
		return dtFim;
	}
	public void setDtFim(Date dtFim) {
		this.dtFim = dtFim;
	}
	public Date getDtInicioPrev() {
		return dtInicioPrev;
	}
	public void setDtInicioPrev(Date dtInicioPrev) {
		this.dtInicioPrev = dtInicioPrev;
	}
	public Date getDtFimPrev() {
		return dtFimPrev;
	}
	public void setDtFimPrev(Date dtFimPrev) {
		this.dtFimPrev = dtFimPrev;
	}
	
	public Integer getDiasProjeto() {
		return diasProjeto;
	}

	public void setDiasProjeto(Integer diasProjeto) {
		this.diasProjeto = diasProjeto;
	}

	public Integer getSemanasProjeto() {
		return semanasProjeto;
	}

	public void setSemanasProjeto(Integer semanasProjeto) {
		this.semanasProjeto = semanasProjeto;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((idProjeto == null) ? 0 : idProjeto.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Projeto other = (Projeto) obj;
		if (idProjeto == null) {
			if (other.idProjeto != null)
				return false;
		} else if (!idProjeto.equals(other.idProjeto))
			return false;
		return true;
	}

}

E esta me dando o seguinte erro!!!

27/08/2009 11:49:37 com.sun.faces.lifecycle.RenderResponsePhase execute
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_id_jsp_1063593318_1:j_id_jsp_1063593318_14[severity=(ERROR 2), summary=(Conversion Error setting value '13101982' for 'null Converter'. ), detail=(Conversion Error setting value '13101982' for 'null Converter'. )]
sourceId=j_id_jsp_1063593318_1:j_id_jsp_1063593318_12[severity=(ERROR 2), summary=(Conversion Error setting value '13101982' for 'null Converter'. ), detail=(Conversion Error setting value '13101982' for 'null Converter'. )]
sourceId=j_id_jsp_1063593318_1:j_id_jsp_1063593318_10[severity=(ERROR 2), summary=(Conversion Error setting value '13101982' for 'null Converter'. ), detail=(Conversion Error setting value '13101982' for 'null Converter'. )]
sourceId=j_id_jsp_1063593318_1:j_id_jsp_1063593318_16[severity=(ERROR 2), summary=(Conversion Error setting value '13101982' for 'null Converter'. ), detail=(Conversion Error setting value '13101982' for 'null Converter'. )]

Alguem pode me ajudar ae!![code]

7 Respostas

A

Você ta usando JSF não esta? Se ta tentando passar algum valor nulo para sua entidade?

A

Estou usando jsf sim …eu coloco os valores nas caixa de textos quando mando inserir ele me da aquela mensagem…!!

B

Aparentemente o problema é com o JSF e não com o Hibernate. Coloque o seu código dentro duma tag Code para podermos vizualizar melhor.

A

minha jsp esta assim :

</head>
<body>
<f:view>
<h:form styleClass="novo">
		<h1><h:outputLabel>Cadastro de Projetos</h:outputLabel></h1>
		<h:outputText value="#{msg.NOME}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.nomeProjeto}" maxlength="100" style="width: 208px"/><br>
		<h:outputText value="#{msg.DESCRICAO}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.descricaoProjeto}" maxlength="100" style="width: 208px"/><br>
		<h:outputText value="#{msg.CODIGO_CLIENTE}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.idCliente}" maxlength="50" style="width: 208px"/><br>
		<h:outputText value="#{msg.DTINICIO}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.dtInicio}" maxlength="50" style="width: 208px"/><br>
		<h:outputText value="#{msg.DTFIM}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.dtFim}" maxlength="50" style="width: 208px"/><br>
		<h:outputText value="#{msg.DTINIPREV}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.dtInicioPrev}" maxlength="50" style="width: 208px"/><br>
		<h:outputText value="#{msg.DTFIMPREV}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.dtFimPrev}" maxlength="50" style="width: 208px"/><br>
		<h:outputText value="#{msg.DIASPROJETO}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.diasProjeto}" maxlength="50" style="width: 208px"/><br>
		<h:outputText value="#{msg.SEMANASPROJETO}"></h:outputText>
		<h:inputText value="#{projetoManagerBean.projeto.semanasProjeto}" maxlength="50" style="width: 208px"/><br>
		<h:commandButton styleClass="buttons" value="Gravar" action="#{projetoManagerBean.saveProjeto}" />
	</h:form>
</f:view>
</body>
</html>
bKn:
Aparentemente o problema é com o JSF e não com o Hibernate. Coloque o seu código dentro duma tag Code para podermos vizualizar melhor.
A

Você criou seu getters/setters no seu managed bean para o bind funcionar? Posta seu Mbean para darmos uma olhada.

A

olha o manager bean

package br.org.shift.managedbean;

import br.org.shift.dao.FactoryDAO;
import br.org.shift.persistencia.Projeto;

public class ProjetoManagerBean {
	private Projeto projeto = new Projeto();

	public Projeto getProjeto() {
		return projeto;
	}

	public void setProjeto(Projeto projeto) {
		this.projeto = projeto;
	}
	
	public String saveProjeto(){
		
		try {
				if (buscarNomeProjeto() == true){
				FactoryDAO.getPROJETO_DAO().save(projeto);
			}
			else{
				return "cadastroerro";
			}
		} catch (Exception e) {
			
			e.printStackTrace();
			
			return "cadastroerro";
		}
		
		return "cadastrosucesso";
		
	}
	
	public boolean buscarNomeProjeto(){
		
		try {
			FactoryDAO.getPROJETO_DAO().buscaNomeProjeto(projeto.getNomeProjeto());
			return true;
		} catch (Exception e) {
			
			e.printStackTrace();
		}
		return false;
	}
	
}
A

Argonaut ele não insere no banco ou ele não consegue renderizar sua pagina de retorno baseado nos valores fornecidos por sua entidade.

Criado 27 de agosto de 2009
Ultima resposta 27 de ago. de 2009
Respostas 7
Participantes 3