Olá pessoal,
seguinte…
Tenho a classe PessoaFisica:
[code]@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();
...
}[/code]E a classe:
[code]@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;
...
}[/code]Pra salvar uma PessoaFisica no banco eu faria:
[code]PessoaFisica pessoaFisica = new PessoaFisica();
pessoaFisica.setNome("Maurão da Silva");
UserLogin user = new UserLogin();
user.setLoginEmail("maurao@gmail.com");
user.setPassword("123456");
user.setPessoaFisica(pessoaFisica);
pessoaFisica.setUser(user);
...
session.save(pessoaFisica);
tx.commit();
session.close();
sf.close();[/code]Até aqui tudo bem. Eu não estou conseguindo salvar direito usando JSF. Quando eu salvo usando este teste que postei, funciona. A tabela [b]user_login[/b] é 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?