Alguem pode me explicar por que esse mapeamente não esta dando certo :
@Entity(name="usuario")
public class Usuario {
@Id
private String login;
private String senha;
@OneToOne
@Column(name="idcliente",unique=true)
@Cascade(CascadeType.ALL)
private Cliente cliente;
public void setLogin(String login) {
this.login = login;
}
public String getLogin() {
return login;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getSenha() {
return senha;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public Cliente getCliente() {
return cliente;
}
}
@Entity(name="cliente")
public class Cliente {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="idcliente")
private Integer id;
private String nome;
private String telefone;
private String email;
private Character assinante;
@OneToMany(mappedBy="cliente" , fetch=FetchType.EAGER)
@Cascade(CascadeType.ALL)
List<Anuncio> anuncios;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Character getAssinante() {
return assinante;
}
public void setAssinante(Character assinante) {
this.assinante = assinante;
}
}
Eu queria que o usuario apontasse para um cliente mas não quero o cliente aponte para o usuario.
A tabela usuario vai ficar assim :
create table usuario (
login varchar(30) ,
senha varchar(30) ,
idcliente int(11) ,
primary key(login) ,
foreign key (idcliente) references cliente(idcliente)
);
Ja tentei trocar o one to one , por many to one , one to many mas insiste em dar errado.
Se o mapeamento estiver correto.
Alguem sabe qual o erro ?