Estou tentando implementar um exemplo de hibernate com annotations para gerar as tabelas no banco, estou usando netbeans, spring e firebird para os testes. As tabelas estao sendo geradas mas as FKs nao. Encontrei esss linhas no output do tomcat:
25/05/2009 08:59:42 org.hibernate.tool.hbm2ddl.SchemaUpdate execute SEVERE: Unsuccessful: alter table PEDIDO_ITENS add constraint FK45521645A4B1C555 foreign key (PEDIDO_ID) references Pedidos 25/05/2009 08:59:42 org.hibernate.tool.hbm2ddl.SchemaUpdate execute SEVERE: GDS Exception. 335544351. unsuccessful metadata update object PEDIDOS is in use Reason: unsuccessful metadata update object PEDIDOS is in use
As tabelas criadas são:
CLIENTES, PRODUTOS. PEDIDOS E PEDIDO_ITENS
Segue o codigo das classes Pedido e ItemPedido:
package modelo.chaveBase.cadastro;
import java.io.Serializable;
import java.util.Set;
import modelo.chaveBase.Cadastro;
import modelo.chaveBase.ItemPedido;
import javax.persistence.*;
@Entity
@Table(name="Pedidos")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Pedido extends Cadastro implements Serializable {
private Cliente cliente;
private Set<ItemPedido> itemPedido;
public Pedido () {
}
@OneToOne
@JoinColumn(name = "ID_CLIENTE")
public Cliente getCliente () {
return cliente;
}
public void setCliente (Cliente val) {
this.cliente = val;
}
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="PEDIDO_ID")
public Set<ItemPedido> getItemPedido () {
return itemPedido;
}
public void setItemPedido (Set<ItemPedido> val) {
this.itemPedido = val;
}
}
package modelo.chaveBase;
import java.io.Serializable;
import modelo.ChaveBase;
import modelo.chaveBase.cadastro.Pedido;
import modelo.chaveBase.cadastro.Produto;
import javax.persistence.*;
import org.hibernate.FetchMode;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.Fetch;
@Entity
@Table(name="PEDIDO_ITENS")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class ItemPedido extends ChaveBase implements Serializable {
private Produto produto;
private Pedido pedido;
public ItemPedido () {
}
@ManyToOne
@JoinColumn(name="ID_PEDIDO", insertable=true, updatable=true)
// @PrimaryKeyJoinColumn
public Pedido getPedido () {
return pedido;
}
public void setPedido (Pedido val) {
this.pedido = val;
}
@OneToOne
@JoinColumn(name="ID_PRODUTO")
public Produto getProduto () {
return produto;
}
public void setProduto (Produto val) {
this.produto = val;
}
}
Espero que alguém possa me ajudar.
Obrigado.