Pessoal, estou muito precisando de ajuda com esse problema tenho um trabalho da faculdade pra terminar e não estou conseguindo acertar as anotações nas classes que precisam ser persistidas, nem o professor esta conseguindo me ajudar, tenho quase certeza que o problema esta na anotação ManyToOne e OneToMany, estou postando as classes envolvidas no problema, peço pra que me deem algumas dicas do que pode estar errado, ja estou na volta a mais de uma semana e não consigo terminar esse trabalho, e ainda tenho mais um de compiladores pra terminar, a coisa não ta facil hehehehe.
Agradeço qualquer ajuda.
@Entity
@DiscriminatorValue(value= "Cliente")
public class BDCliente extends BDPessoa implements Cliente, Serializable {
private static final long serialVersionUID = -5457133329227046620L;
//esta dando erro no campo nullable = false, testei sem ele, e foi de boa...
//em funcionario nao tem nullable, tem q perguntar pro prof.
@Column(name="codCliente", nullable = false)
private int codCliente;
@OneToMany (cascade = CascadeType.ALL, mappedBy = "cliente")
private List<Treinamento> treinamento;
@OneToMany (cascade = CascadeType.ALL, mappedBy = "cliente")
private List<Biometria> biometria;
public int getCodCliente() {
return codCliente;
}
public void setCodCliente(int codCliente) {
this.codCliente = codCliente;
}
public String getTipoPessoa() {
return ("Cliente");
}
classe pessoa
@Entity
@Table(name="Pessoa")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name= "tipo_de_pessoa", discriminatorType = DiscriminatorType.STRING)
public abstract class BDPessoa implements Pessoa, Serializable{
@Id
@Column(name="CPF", nullable = false)
private String cpf;
@Column(name="tipo_de_pessoa", nullable = false)
public abstract String getTipoPessoa();
@Column(name="Nome", nullable = false)
private String nome;
@Column(name="Endereco", nullable = false)
private String endereco;
@Column(name="Telefone", nullable = true)
private String telefone;
@Column(name="Cidade", nullable = false)
private String cidade;
@Column(name="Estado", nullable = false)
private String estado;
@Column(name="Codigo_Acesso", nullable = false)
private String codAcesso;
@Column(name="Senha", nullable = false)
private String senha;
@Column(name="Ativo", nullable = false)
private boolean ativo;
classe biometria
@Entity
@Table(name = "Biometria")
public class BDBiometria implements Biometria, Serializable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int codBiometria;
@ManyToOne
private Cliente cliente;
@Column(name="altura", length=10, nullable = false)
private float altura;
@Column(name="peso", nullable = false)
private float peso;
@Column(name="taxaGordura", nullable = false)
private float taxaGordura;
@Column(name="objetivo", nullable = false)
private String objetivo;
public float getAltura() {
return altura;
}
classe treinamento
@Entity
@Table(name = "Treinamento")
public class BDTreinamento implements Treinamento, Serializable {
private static final long serialVersionUID = -6615148294175474396L;
@Id
private int codTreinamento;
@ManyToOne
private Cliente cliente;
private String atividade;
private float carga;
private int numeroRepeticoes;
private int numeroSeries;
public String getAtividade() {
return atividade;
}