Problema ao gerar FKs hibernate annotations

2 respostas
ddyego2009

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.

2 Respostas

Jose111

por acaso a tabela pedidos já não está com dados inseridos?

ddyego2009

nao ha dados na tabela, o teste e justamente para criacao das tabelas e relacionamentos com annotations

Criado 25 de maio de 2009
Ultima resposta 25 de mai. de 2009
Respostas 2
Participantes 2