Nao consigo gravar no banco o relacionamento - hibernate + vraptor

2 respostas
M

Galera seguinte tenho duas classes anotadas

Cliente e Funcionario

e to tentando na gravacao dos Cliente que seja cadastrado o Funcionario responsavel pelo cadastro.

e nao to conseguido me ajudem ai por favor Cliente.java
Code:

 
 Cliente.java
 package org.mytech.beans;
 
 @Entity
 public class Cliente implements java.io.Serializable {
 
 	@Transient
 	private int temporaria;
 	
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)
 //	@Column(name="id_cliente")
 	private Long id;
 	
 	@Column(nullable=false, length=40,
 			insertable=true, updatable=true)
 	private String nome;
 	
 	@Column(unique=true, nullable=false,
 			insertable=true, updatable=true)
 	private String cpf;
 	
 	/* Mapeamento para relacionamentos*/
 	
 	@OneToOne(cascade=CascadeType.PERSIST, fetch=FetchType.EAGER)
 	@JoinColumn(nullable=false,name="Idfuncionario")
 	private Funcionario Idfuncionario;
 
 	
 	// Constructors
 
 	/** default constructor */
 	public Cliente() {
 	}
 
 	/**
 	 * @return the id
 	 */
 	public Long getId() {
 		return id;
 	}
 
 
 	/**
 	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
 	}
 
 
 	/**
 	 * @return the nome
 	 */
 	public String getNome() {
 		return nome;
 	}
 
 
 	/**
 	 * @param nome the nome to set
 	 */
 	public void setNome(String nome) {
 		this.nome = nome;
 	}
 
 
 	/**
 	 * @return the cpf
 	 */
 	public String getCpf() {
 		return cpf;
 	}
 
 	/**
 	 * @param cpf the cpf to set
 	 */
 	public void setCpf(String cpf) {
 		this.cpf = cpf;
 	}
 
 	/**
 	 * @return the idfuncionario
 	 */
 	public Funcionario getIdfuncionario() {
 		return Idfuncionario;
 	}
 
 	/**
 	 * @param idfuncionario the idfuncionario to set
 	 */
 	public void setIdfuncionario(Funcionario idfuncionario) {
 		Idfuncionario = idfuncionario;
 	}
 
 }
 


Funcionario.java
Code:

 package org.mytech.beans;
 
 @Entity
 public class Funcionario implements java.io.Serializable {
 
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)
 	//@Column(name="id_funcionario")
 	private Long id;
 	private String nome;
 	private String endereco;
 	
 	// Constructors
 
 	/** default constructor */
 	public Funcionario() {
 	}
 
 	/**
 	 * @return the id
 	 */
 	public Long getId() {
 		return id;
 	}
 
 	/**
 	 * @param id the id to set
 	 */
 	public void setId(Long id) {
 		this.id = id;
 	}
 
 	/**
 	 * @return the nome
 	 */
 	public String getNome() {
 		return nome;
 	}
 
 	/**
 	 * @param nome the nome to set
 	 */
 	public void setNome(String nome) {
 		this.nome = nome;
 	}
 
 	/**
 	 * @return the endereco
 	 */
 	public String getEndereco() {
 		return endereco;
 	}
 
 	/**
 	 * @param endereco the endereco to set
 	 */
 	public void setEndereco(String endereco) {
 		this.endereco = endereco;
 	}
 }
 

Log da Criacao do Banco de Dados
Code:

 
 log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
 log4j:WARN Please initialize the log4j system properly.
 alter table Cliente drop foreign key FK96841DDA86C2140E
 drop table if exists Cliente
 drop table if exists Funcionario
 create table Cliente (id bigint not null auto_increment, nome varchar(40) not null, cpf varchar(255) not null unique, aniversario date not null, endereco varchar(255), bairro varchar(40), 
 cidade varchar(40), uf varchar(2), cep varchar(11), fonefixo varchar(13), fonecel varchar(13), fonetrab varchar(13), email varchar(100), 
 foto varchar(100), status varchar(1), Idfuncionario bigint not null, primary key (id))
 create table Funcionario (id bigint not null auto_increment, nome varchar(255), endereco varchar(255), bairro varchar(255), cidade varchar(255),
 uf varchar(255), fonecel varchar(255), fonefixo varchar(255), email varchar(255), dtentrada datetime, dtsaida datetime, status varchar(255), primary key (id))
 alter table Cliente add index FK96841DDA86C2140E (Idfuncionario), add constraint FK96841DDA86C2140E foreign key (Idfuncionario) references Funcionario (id)
Cliente.formulario.ok
Code:

 <%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 <%@ taglib uri="http://displaytag.sf.net" prefix="display"%>
 
 <html>
 	<head>
 		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 		<title>Cadastro de Clientes</title>
 		<link rel="stylesheet" type="text/css" href="css/style.css" />
 		<script src="javascripts/jquery.js" type="text/javascript"></script>
 		<script src="javascripts/prototype.js" type="text/javascript"></script>
 		<script src="javascripts/validation.js" type="text/javascript"></script>
 		
 		<script type="text/javascript">
      		new Validation('CadastroCliente'); // OR new Validation(document.forms[0]);
 		</script>
 	</head>
 	<body>
 		<h1> 
 			CCadastro de Clientes 
 		</h1>
 		<form action="cliente.armazena.logic" method="get" name="CadastroCliente">
 			<input type="hidden" name="cliente.id" value="${cliente.id}" />
 			Nome do Cliente
 			<input type="text" name="cliente.nome" value="${cliente.nome}" />
 			<br />
 			CPF
 			<input type="text" name="cliente.cpf" value="${cliente.cpf}" />
 			<br />
 			Funcionario Responsavel pelo Cadastro
 			<input type="text" name="cliente.Idfuncionario"
 				value="${cliente.Idfuncionario}" />
 			<input type="submit" />
 
 		</form>
 	</body>
 </html>
ClienteLogic
Code:

 package logic;
 
 import java.util.List;
 
 import org.mytech.beans.Cliente;
 import org.mytech.beans.Funcionario;
 import org.mytech.daos.DaoFactory;
 import org.vraptor.annotations.Component;
 import org.vraptor.annotations.InterceptedBy;
 
 
 @Component
 @InterceptedBy(DaoInterceptor.class)
 public class ClienteLogic {
 	
 	private final DaoFactory daoFactory;
 	private Cliente cliente;
 	private List<Cliente> clientes;
 		
 	public ClienteLogic(DaoFactory daoFactory) {
 		this.daoFactory = daoFactory;
 	}
 	public void formulario() {
 	}
 	
 	public void editar(Cliente cliente) {
 		// carrega os dados no banco para edicao
 		this.cliente = this.daoFactory.getClienteDao().procura(cliente.getId());
 	}
 	// Adiciona um genero novo ou atualiza se for edicao
 	public void armazena (Cliente cliente) {
 		this.daoFactory.beginTransaction();
 		this.daoFactory.getClienteDao().atualiza(cliente);
 		this.daoFactory.commit();
 		System.out.println("Adicionou Cliente:" + cliente.getNome());
 	}
 	// Remove um genero novo ou atualiza se for edicao
 	public void remove (Cliente cliente) {
 		this.daoFactory.beginTransaction();
 		this.daoFactory.getClienteDao().remove(cliente);
 		this.daoFactory.commit();
 		System.out.println("Removeu o Cliente:" + cliente.getNome());
 	}
 	public void lista () {
 		this.clientes = this.daoFactory.getClienteDao().listaTodos();
 		System.out.println("Removeu o Cliente:" + clientes);
 	}
 	public Cliente getCliente() {
 		return cliente;
 	}
 	public List<Cliente> getClientes() {
 		return clientes;
 	}
 	//list para relacionamentos
 	// metodo usado para popular o select
 	public List<Funcionario> getListaFuncionarios() {
 	return this.daoFactory.getFuncionarioDao().listaTodos();
 	}
 }
Log do Erro
16:37:04,997 DEBUG [VRaptorServlet      ] new request to /locadora/cliente.armazena.logic
 16:37:04,997 DEBUG [DefaultLogicLocator ] Requested url (request wrapped): /locadora/cliente.armazena.logic
 16:37:04,997 DEBUG [DefaultLogicLocator ] requested uri: cliente.armazena.logic
 16:37:04,997 DEBUG [DefaultLogicLocator ] logic method extracted: org.vraptor.component.DefaultLogicMethod@18fee4f
 16:37:04,997 DEBUG [VRaptorExecution    ] Calling execute on org.vraptor.core.WebRequest@66b06b / org.vraptor.component.DefaultLogicMethod@18fee4f
 16:37:04,997 DEBUG [DefaultViewLocator  ] Requested url (request wrapped): /locadora/cliente.armazena.logic
 16:37:04,997 DEBUG [DefaultViewLocator  ] requested uri: cliente.armazena.logic
 16:37:04,997 DEBUG [InterceptorsLogicFlow] Calling interceptor: org.vraptor.interceptor.RegisterAttributesInteceptor@1c87031
 16:37:04,997 DEBUG [InterceptorsLogicFlow] Calling interceptor: org.vraptor.interceptor.FlashScopeInterceptor@3dcf03
 16:37:04,997 DEBUG [InterceptorDealer   ] Adding interceptor logic.DaoInterceptor
 16:37:04,997 DEBUG [InterceptorsLogicFlow] Calling interceptor: logic.DaoInterceptor@1e20a9a
 16:37:04,997 DEBUG [BasicIntrospector   ] Outjecting key org.mytech.daos.DaoFactory at REQUEST
 16:37:04,997 DEBUG [InterceptorDealer   ] Adding interceptor org.vraptor.interceptor.ComponentLookupInterceptor
 16:37:04,997 DEBUG [InterceptorsLogicFlow] Calling interceptor: org.vraptor.interceptor.ComponentLookupInterceptor@1262f7c
 16:37:04,997 DEBUG [ComponentLookupInterceptor] Instantiating class logic.ClienteLogic
 16:37:04,997 DEBUG [InterceptorDealer   ] Adding interceptor org.vraptor.interceptor.InjectionInterceptor
 16:37:04,997 DEBUG [InterceptorsLogicFlow] Calling interceptor: org.vraptor.interceptor.InjectionInterceptor@1f784d7
 16:37:04,997 DEBUG [InterceptorDealer   ] Adding interceptor org.vraptor.interceptor.SettingAndValidationInterceptor
 16:37:04,997 DEBUG [InterceptorsLogicFlow] Calling interceptor: org.vraptor.interceptor.SettingAndValidationInterceptor@1325aef
 16:37:04,997 DEBUG [BasicIntrospector   ] Parameter cliente.Idfuncionario will be used on field cliente
 16:37:04,997 DEBUG [JPathExecutor       ] ready to use parameter [cliente, Idfuncionario]
 16:37:05,044 DEBUG [BasicIntrospector   ] Unable to find converter for org.mytech.beans.Funcionario
 org.vraptor.converter.ConversionException: Unable to find converter for org.mytech.beans.Funcionario
 	at org.vraptor.converter.SimpleConverterManager.findConverter(SimpleConverterManager.java:94)
 	at org.vraptor.converter.SimpleConverterManager.convert(SimpleConverterManager.java:49)
 	at org.vraptor.reflection.JPathExecutor.convert(JPathExecutor.java:215)
 	at org.vraptor.reflection.JPathExecutor.internalSet(JPathExecutor.java:195)
 	at org.vraptor.reflection.JPathExecutor.set(JPathExecutor.java:102)
 	at org.vraptor.introspector.BasicIntrospector.readParameters(BasicIntrospector.java:81)
 	at org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:98)
 	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
 	at org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
 	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
 	at org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:58)
 	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
 	at logic.DaoInterceptor.intercept(DaoInterceptor.java:21)
 	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
 	at org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
 	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
 	at org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
 	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
 	at org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:98)
 	at org.vraptor.core.DefaultController.execute(DefaultController.java:46)
 	at org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
 	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
 	at java.lang.Thread.run(Unknown Source)
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.aniversario will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, aniversario]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.LocaleCalendarDateConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.bairro will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, bairro]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.cep will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, cep]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.cidade will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, cidade]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.cpf will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, cpf]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.email will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, email]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.endereco will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, endereco]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.fonecel will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, fonecel]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.fonefixo will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, fonefixo]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.fonetrab will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, fonetrab]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.foto will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, foto]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.id will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, id]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.SimpleLongConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.nome will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, nome]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.status will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, status]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [BasicIntrospector   ] Parameter cliente.uf will be used on field cliente
 16:37:05,075 DEBUG [JPathExecutor       ] ready to use parameter [cliente, uf]
 16:37:05,075 DEBUG [SimpleConverterManager] Found converter org.vraptor.converter.basic.StringConverter
 16:37:05,075 DEBUG [ValidatorEngine     ] checking validation using org.vraptor.component.DefaultLogicMethod
 16:37:05,075 DEBUG [ValidatorEngine     ] loading resource bundle: messages for locale pt_BR
 16:37:05,075 DEBUG [ValidatorEngine     ] Resource bundle not found: messages
 16:37:05,091 DEBUG [SettingAndValidationInterceptor] Some problems were found: [Errors: [org.vraptor.i18n.Message@f11de2]]
 16:37:05,107 DEBUG [BasicIntrospector   ] Outjecting key clientes at REQUEST
 16:37:05,107 DEBUG [BasicIntrospector   ] Outjecting key listaFuncionarios at REQUEST
 16:37:05,107 DEBUG [BasicIntrospector   ] Outjecting key cliente at REQUEST
 16:37:05,107 DEBUG [RegexViewManager    ] Server-side redirect to: /cliente/armazena.invalid.jsp

2 Respostas

M

resolvido

von.juliano

Cara, já que resolveu, poste a solução, alguém pode precisar futuramente. Aproveite e coloque [RESOLVIDO] no título do tópico.

Flw! :thumbup:

Criado 29 de julho de 2008
Ultima resposta 30 de jul. de 2008
Respostas 2
Participantes 2