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->@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;
@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;
@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;
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!!!!