Não criou foreign key

Tenho a entidade PedidoProduto que serve para ligar pedido com produtos
@Entity
public class PedidoProduto {

@Id
private int codigo;

@JoinColumns(@JoinColumn(name = "CODIGOPED",referencedColumnName="CODIGOPED"))
private Pedido pedido;

@JoinColumns(@JoinColumn(name = "CODIGOPRO",referencedColumnName="CODIGOPRO"))
private Produto produto;

private BigDecimal preco;

}

A mesma criou a tabela como abaixo:
CREATE TABLE bd_teste.pedidoproduto (
CODIGO int(11) NOT NULL,
PRECO decimal(38,0) default NULL,
CODIGOPRO int(11) default NULL,
CODIGOPED int(11) default NULL,
PRIMARY KEY (CODIGO),
KEY FK_PEDIDOPRODUTO_CODIGOPRO (CODIGOPRO),
KEY FK_PEDIDOPRODUTO_CODIGOPED (CODIGOPED)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

queria saber por que criou esse KEY ao invés de FOREIGN KEY E COMO EU FAÇO PARA A TABELA FICAR COM TIPO INNODB. Estou usando MYSQL 5

Será que o problema do KEY ao invés de FOREIGN KEY esta relacionado ao tipo MyISAM ? O que faço para corrigir?

oi

Da uma olhada se ManyToOne não resolve a parte do foreign key
http://java.sun.com/javaee/5/docs/api/javax/persistence/ManyToOne.html

coloquei assim na entidade PedidoProduto

@ManyToOne(optional=false,cascade=CascadeType.ALL)
@JoinColumns(@JoinColumn(name = “CODIGOPRO”,referencedColumnName=“CODIGOPRO”))
private Produto produto;

e nao resolveu, tentei tambem sem os parametros no ManyToOne mas deu no mesmo, acho que o problema esta por ser MyISAM ao inves de innodb, acho que eu tenho que resolver isso primeiro, sera que nao é isso?