JPA - Rel. 1 para muitos + Sequence + Chave composta

Oi pessoal!!!

Estou com problemas e duvidas na hora de inseir um dado quando tenho um relacionamento de 1 para muitos, onde campo para esse relacionamento recebe o valor de uma Sequence em uma tabela e na outra faz parte de uma chave composta.

Eu tenho um relacionamento entre duas tabelas de Um- para muitos.

1 PEDIDOS -> N ITENSPEDIDO

Basicamente minhas tabelas são assim:

PEDIDO

  • pedidoID (PK) - Sequence: pedido_seq
    nome

ITENSPEDIDO
*pedidoID(PK)

  • itempedidoID(PK)
    Descricao

Os Mapeamentos ficaram assim:

Pedidos->

[code]
@Entity
@Table(name = “pedidos”)
public class Pedidos implements Serializable {

@Id
@SequenceGenerator(name="pedido_seq", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="pedido_seq") 
@Column(name = "pedido_id", nullable = false)
private int pedidoID;
...
@OneToMany(cascade = CascadeType.ALL, mappedBy = "pedidos")
private List<ItensPedido> itensPedidoCollection;[/code]

ItensPedido ->

[code]
@Entity
@Table(name = “itens_pedido”)
public class ItensPedido implements Serializable {

@EmbeddedId
protected ItensPedidoPK itensPedidoPK;
...
@JoinColumn(name = "pedido_id", referencedColumnName = "pedido_id", insertable = false, updatable = false)
@ManyToOne
private Pedidos pedidos;[/code]

PK (resolução da Chave composta) ->

[code]@Embeddable
public class ItensPedidoPK implements Serializable {

@Id
@Column(name = "pedido_id", nullable = false)
private int pedidoID;

@Id
@Column(name = "item_pedido", nullable = false)
private int itemPedidoID;[/code]

Como PEDIDOS tem uma lista de ITENSPEDIDO, se eu der um Persiste(objetopedido) e esse Objeto estiver com a lista de ItensPedido preenchida, os dados não deveria ser inseridos nas 2 tabelas???

Só que não esta dando certo!!!

Diz que o campo pedidoID da Tabela ItensPedido esta com o valor = 0.
Mas como eu vou setar isso se eu não sei qual valor vai ser dado ao pedidoID ja que ele vem de uma sequence e enquanto estou preenchendo os objetos nada foi inserido ainda???

O JPA ja não deveria entender isso sozinho, ja que eu disse que o relacionamento é feito por esse campo??? Ou entende e eu é que fiz algo errado ou estou esquecendo de alguma configuração ou declaração???

HELP!!!

Obrigada!!!

Consegui resolver!!! :lol:

Não pode usar @EmbeddedId

Tem que usar @IdClass

Nesse link explica direitinho:
http://forums.java.net/jive/thread.jspa?forumID=56&threadID=18610&messageID=156535