Galera vou explicar minha situação
Estou aprendendo hibernate, e estou fazendo um relacionamento entre a classe Pessoa e Endereco, até ai blz
Tenho uma outra classe chamada GerarTabelas, que cria minha tabela no banco postgresql
Então peguei a classe GerarTabela e mandei criar a tabela Endereco funcionou blz, mais quando mandei criar a Pessoa deu esse erro
Exception in thread "main" org.hibernate.AnnotationException: @OneToOne or @ManyToOne on relacionamento.Pessoa.endereco references an unknown entity: relacionamento.Endereco
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:81)
at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:499)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:304)
at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:762)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:93)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:61)
at relacionamento.GeraTabelas.main(GeraTabelas.java:14)
Java Result: 1
Essa é minha classe Endereco
@Entity
@Table(name="endereco")
public class Endereco {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="endereco_sequence_generator")
@SequenceGenerator(name="endereco_sequence_generator", sequenceName="seq_endereco",allocationSize= 1)
@Column(name="id", nullable= false)
private Long id;
private String logradouro;
private String numero;
private String complemento;
public Endereco(){
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
public String getNumero() {
return numero;
}
public void setNumero(String numero) {
this.numero = numero;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
}
Essa é minha classe Pessoa
@Entity
@Table(name="pessoa")
public class Pessoa {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="pessoa_sequence_generator")
@SequenceGenerator(name="pessoa_sequence_generator", sequenceName="seq_pessoa",allocationSize= 1)
@Column(name="id", nullable= false)
private Long id;
@Column(name="nome", nullable= false)
private String nome;
@ManyToOne
@JoinColumn(name = "endereco_id", referencedColumnName="id")
private Endereco endereco;
public Pessoa(){
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
E essa é minha classe GerarTabelas
public class GeraTabelas {
public static void main(String[] args) {
// Cria uma configuração para a classe Produto
AnnotationConfiguration cfg = new AnnotationConfiguration();
cfg.addAnnotatedClass(Pessoa.class);
new SchemaExport(cfg).create(true, true);
}
}
O estou fazendo de errado?
