Pessoal tenho essas duas tabelas e gostaria de fazer o mapeamento por annotations.
[b]create table produto(
prd_id integer not null auto_increment,
prd_descricao varchar(30) not null,
prd_categoria integer not null,
primary key(prd_id),
foreign key prd_categoria references categoria(cat_id)
)
create table categoria(
cat_id integer not null auto_increment,
cat_descricao varchar(30) not null,
primary key(cat_id)
)[/b]
agora vejam as classes que geram a tabela
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
@Entity @Table(name=“produto”)
public class Produto {
@Id
@GeneratedValue
private Long prd_id;
@Column(name="prd_descricao", nullable=true, length=50)
private String prd_descricao;
private Double prd_preco;
private Date prd_dtcadastro;
private Long prd_estoque;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private Categoria prd_categoria;
public Categoria getPrd_categoria() {
return prd_categoria;
}
public void setPrd_categoria(Categoria prd_categoria) {
this.prd_categoria = prd_categoria;
}
//o resto do gets e sets bla bla bla
}
a classe categoria
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
@Entity @Table(name=“categoria”)
public class Categoria {
@Id
@GeneratedValue
private Long cat_id;
@Column(name="cat_descricao", nullable=true, length=30)
private String cat_descricao;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private Produto produto;
public Produto getProduto() {
return produto;
}
public void setProduto(Produto produto) {
this.produto = produto;
}
public String getCat_descricao() {
return cat_descricao;
}
public void setCat_descricao(String cat_descricao) {
this.cat_descricao = cat_descricao;
}
public Long getCat_id() {
return cat_id;
}
public void setCat_id(Long cat_id) {
this.cat_id = cat_id;
}
}
o problema é: o hibernate consegue gerar as 2 tabelas, mas na tabela de produto, nao consta o campo “prd_categoria” que seria a foreign key para a tabela de categorias. Por favor me ajudem
Desde ja agradeço
Celso