Erro: org.hibernate.TransientObjectException[URGENTEEEE]

2 respostas
F

Boa tarde pessoal...
Estou com um problemãooooo não consigo resolver... =´[, estou o dia inteiro tentando procurei várias coisas no google e não achei.

Eu possuo 3 classes.. Endereco, Cidade e estado

Classe Estado
@Id
	@GeneratedValue
	@Column(name = "cod_estado")
	private Integer codigo;

	@Column(name = "sigla_estado", length=2, nullable=false)
	private String sigla;

	@Column(name = "nome_estado", length=50, nullable=false)
	private String nome;
Classe Cidade
@Id
	@GeneratedValue
	@Column(name = "cod_cidade")
	private Integer codigo;

	@ManyToOne
	@Cascade(CascadeType.ALL)
	@JoinColumn(name="cod_estado", nullable=false)
	private Estado estado;
	
	@Column(name = "nome_cidade", length=50, nullable=false)
	private String nome;
Classe Endereco
@Id
	@GeneratedValue
	@Column(name = "cod_endereco")
	private Integer endereco;
	
	@Column(name = "rua", nullable = false, length = 50)
	private String rua;

	@Column(name = "numero", nullable = true)
	private Integer numero;

	@Column(name = "bairro", nullable = false, length = 50)
	private String bairro;

	@Column(name = "complemento", nullable = true, length = 50)
	private String complemento;

	@Column(name = "cep", nullable = false, length = 9)
	private String cep;
	
	@ManyToOne
	@Cascade(CascadeType.ALL)
	@JoinColumn(name="cod_estado", nullable=false)
	private Estado estado;
	
	@ManyToOne
	@JoinColumn(name="cod_cidade", nullable=false)
	private Cidade cidade;
	
	@Transient
	private Empresa empresa;

Qual a finalidade disso???
Eu tenho uma tela de cadastro..
quando eu selecionar uma uf eu quero que ele exiba as cidades daquela uf...

eu tenho a minha classe bean..

classe bean
private Integer teste;
	private List<Estado> listaEstado;
	private Cidade cidade = new Cidade();
	private Estado estado;
	private List<Cidade> listaCidade = null;

	/**
	 * @return the listaCidade
	 */
	public List<Cidade> getListaCidade() {
		if(this.listaCidade == null){
			CidadeRN cidadeRN = new CidadeRN();
			this.listaCidade = cidadeRN.listar(estado);
		}
		return this.listaCidade;
	}
	
	/**
	 * @return the listaEstado
	 */
	public List<Estado> getListaEstado() {
		if (this.listaEstado == null) {
			EstadoRN estadoRN = new EstadoRN();
			this.listaEstado = estadoRN.listar();
		}
		return listaEstado;
	}

e sempre que eu tenta instancia o objeto estado da esse erro..

[color=red]
14/12/2011 16:02:04 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/restrito/empresa.xhtml]
javax.el.ELException: /restrito/empresa.xhtml @98,59 value="#{estadoBean.listaCidade}": org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.stefanini.sgi.estado.Estado
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:107)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
at javax.faces.component.UISelectItems.getValue(UISelectItems.java:129)
at com.sun.faces.renderkit.SelectItemsIterator.initializeItems(SelectItemsIterator.java:202)
at com.sun.faces.renderkit.SelectItemsIterator.hasNext(SelectItemsIterator.java:135)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:760)
at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:842)
at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:296)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
[/color]

Alguémmmm por favor me ajudeeee!!!!!!

x.x

2 Respostas

drsmachado
Você não coloca nas entities?

Você não coloca nas entities?

Hebert_Coelho

Colocar urgente não vai fazer ninguem se apressar. Sério, afasta pessoas. [=

Esse erro acontece pq vc ta tentando salvar um objeto que está fora da sessão.

Ou seja, vc em algum momento está tentando inserí-lo no contexto, mas ele não pertence ao contexto ainda.

Você vai ter que salvar antes. Provavelmente, deve ser os objetos que estão na lista da sua classe.

Criado 14 de dezembro de 2011
Ultima resposta 14 de dez. de 2011
Respostas 2
Participantes 3