Salve galera,
Eu to precisando de uma força…
É o seguinte, estou desenvolvendo uma aplicação da seguinte maneira:
- Tenho uma classe A que estende a classe B.(ate aqui tudo bem)
- Na classe A tem um atributo que pertence a classe D , e a FK da classe D é a PK da classe B
Entao, qual problema? O problema é que esta dando o seguinte erro quando o hibernate vai subir:
org.hibernate.AssertionFailure: Table TESTE.D not found
A questao é de que quando eu tiro o extends da classe A nao ocorre mais o problema,eu gostaria de saber se alguma solução, ou gato pra isso. O projeto é feito todo em Annotations(JPA e Hibernate) e nao tem como mudar o diagrama de classes.
Alguns devem estar pensando que pode ser alguma coisa referente ao Banco de Dados , como permissao e essas coisas… Não é, eu ja verifiquei, o mapeamento da classe D tambem esta correto, todos foruns e post que tem sobre esse erro ou algo parecido tambem olhei e nada funcionou.HELLLP!!!
Classe B
@Entity
@Table(name = "B", schema = "TESTE")
@Proxy(lazy = false)
@Inheritance(strategy=InheritanceType.JOINED)
public class B implements Serializable {
private Long id;
private String nome;
private String telefoneResidencial;
private String site;
private char tipoPessoa;
private char tipoNacionalidade;
private Date dataAlteracao;
private Long numeroVersao;
private String telefoneComercial;
private String areaComercial;
private String areaResidencial;
public B(){
}
@Column(name="DS_URL_SITE",nullable=true)
public String getSite()
{
return site;
}
@Id
@Column(name = "ID_B", unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_B")
public Long getId()
{
return this.id;
}
@Column(name = "NM_PESSOA", unique = false, nullable = false, length = 10)
public String getNome()
{
return this.nome;
}
@Column(name = "NR_TELEFONE_RESIDENCIAL", unique = false, nullable = true, length = 10)
public String getTelefoneResidencial()
{
return this.telefoneResidencial;
}
@Column(name="TP_PESSOA", unique = false, nullable=false,length=1)
public char getTipoPessoa()
{
return tipoPessoa;
}
@Column(name="TP_NACIONALIDADE", unique=false,nullable=false,length=1)
public char getTipoNacionalidade()
{
return tipoNacionalidade;
}
@Column(name="DT_ALTERACAO",unique=false,nullable=false,length=10)
public Date getDataAlteracao()
{
return dataAlteracao;
}
@Column(name="NR_VERSAO",nullable=false,unique=false)
public Long getNumeroVersao()
{
return numeroVersao;
}
@Column(name="NR_TELEFONE_COMERCIAL",nullable=true,unique=false,length=10)
public String getTelefoneComercial()
{
return telefoneComercial;
}
@Column(name="CD_AREA_COMERCIAL",nullable=true,unique=false,length=4)
public String getAreaComercial()
{
return areaComercial;
}
@Column(name="CD_AEREA_RESIDENCIAL",nullable=true,unique=false,length=4)
public String getAreaResidencial()
{
return areaResidencial;
}
}
[code]
@Entity
@Table(name = “B”, schema = “TESTE”)
@SecondaryTable(name=“D”, schema = “TESTE”,
pkJoinColumns={@PrimaryKeyJoinColumn(name=“B”, referencedColumnName=“ID_PESSOA_FISICA”)})
@PrimaryKeyJoinColumn(name=“ID_B”)
@AttributeOverride(name = “id”, column=@Column(name=“B”))
public class A extends B {
private String entidadeOrganizacao;
private D participacaoPF;
@Column(table= “D”, name=“DS_ENTIDADE”,nullable=true,unique=false,length=50)
public String getEntidadeOrganizacao()
{
return entidadeOrganizacao;
}
@OneToOne(cascade={CascadeType.ALL},fetch=FetchType.EAGER)
@JoinColumn(name="-ID_B")
public D getParticipacaoPF()
{
return participacaoPF;
}[/code]