Setar entidade JSF

5 respostas
tati.mat.moreira

Olá pessoal,

seguinte...

Tenho a classe PessoaFisica:

@Entity
@Table(name="pessoa_fisica")
public class PessoaFisica implements Serializable{

	@Id  
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="PESSOA_FISICA_ID")
	private Long id;  
	
	@OneToOne(cascade = CascadeType.ALL)  
	@JoinColumn(name="USER_ID")
	private UserLogin userLogin = new UserLogin();

	...
}
E a classe:
@Entity
@Table(name="user_login")
public class UserLogin implements Serializable {

	@Id  
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="USER_ID")
	private Long id;  
	
	@Column(name="LOGIN_EMAIL", nullable=false)
	private String loginEmail; 
	
	@Column(name="PASSWORD", nullable=false)
	private String password;

	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="ID_USR_PES_FIS")	
	private PessoaFisica pessoaFisica;
	
	...

}
Pra salvar uma PessoaFisica no banco eu faria:
PessoaFisica pessoaFisica = new PessoaFisica();
	pessoaFisica.setNome("Maurão da Silva");

	UserLogin user = new UserLogin();
	user.setLoginEmail("[email removido]");
	user.setPassword("123456");
	user.setPessoaFisica(pessoaFisica);
		
	pessoaFisica.setUser(user);
	
        ...

	session.save(pessoaFisica);
	tx.commit();

	session.close();
	sf.close();
Até aqui tudo bem. Eu não estou conseguindo salvar direito usando JSF. Quando eu salvo usando este teste que postei, funciona. A tabela user_login é preenchida corretamente. Mas quando eu salvo usando o código:
<h:outputLabel for="email" value="* E-mail " styleClass="rotulos"/>
<h:inputText id="email" value="#{pessoaFisicaFace.pessoaFisica.userLogin.loginEmail}" styleClass="edit">
	<f:validator validatorId="emailValidator"/> 
</h:inputText>
a coluna ID_USR_PES_FIS da tabela user_login recebe NULL. Acredito que falte o código pessoaFisica.setUser(user); em JSF. Alguém pode ajudar?

5 Respostas

Giulliano

Pelo que eu entendi esta faltando o relacionamente entre Pessoa Fisica e LoginUser.

Vc precisaria criar um SelectOnMenu na página onde o valor selelecionado seria o valor correspondente a PessoaFisica ou ao LoginUser…

na página do LoginUser precisa de um SelectOneMenu de PessoaFisca e vice-versa…

[]'s

maurenginaldo

Oi Tati,

Você está inserindo ou alterando?

tati.mat.moreira

Oi,

estou inserindo.

maurenginaldo

Oi Tati,

deve estar dando algum erro ao inserir, pois de acordo com seu código você está preenchendo o loginEmail, porém o campo password não pode ser nulo e vc não esta preenchendo ele.

Posta as mensagens do console para dar uma olhada.

Abraços,

tati.mat.moreira

Olá,

modelei de outro modo e deu certo!

Agradeço a todos que se preocuparam!

:wink:

Criado 5 de fevereiro de 2009
Ultima resposta 6 de fev. de 2009
Respostas 5
Participantes 3