title: Insert object with composite primary key
body: <p>I need help with this. With code is more clear, this is my function to persist:</p>
  
  <pre><code>public String finalizarCompra() {
    Pedido pedido = new Pedido();
    pedido.setEstado("almacen");
    pedido.setFechaVenta(new Date());
    pedido.setIdUsuario(loginBean.getUsuario());
    Producto p;
    Integer i;
    DetPedido detPedido;
    List&lt;DetPedido&gt; lista = new ArrayList&lt;&gt;();
    for (Map.Entry e : productos.entrySet()) {
      detPedido = new DetPedido();
      p = (Producto) e.getKey();
      i = (Integer) e.getValue();
      detPedido.setProducto(p);
      detPedido.setCantidad(i);
      detPedido.setPrecioUnidad(p.getPrecioUnidad());
      detPedido.setPedido(pedido);
      lista.add(detPedido);
      detPedidoBean.insert(detPedido);
    }
    pedido.setDetPedidoCollection(lista);
    pedidoBean.insert(pedido);
    return "";
  }
  </code></pre>
  
  <p>This is my Pedido Entity:</p>
  
  <pre><code>@Entity
  public class Pedido implements Serializable {
    private static final long serialVersionUID = 1L;
  
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "ID_PEDIDO")
    private Integer idPedido;
  
    @Basic(optional = false)
    @NotNull
    @Column(name = "FECHA_VENTA")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaVenta;
  
    @Column(name = "FECHA_ENVIO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaEnvio;
  
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "ESTADO")
    private String estado;
  
    @JoinColumn(name = "ID_USUARIO", referencedColumnName = "ID_USUARIO")
    @ManyToOne(optional = false)
    private Usuario idUsuario;
  
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "pedido")
    private Collection&lt;DetPedido&gt; detPedidoCollection;
  
    // Getters and Setters //
  </code></pre>
  
  <p>This is my DetPedido Entity:</p>
  
  <pre><code>@Entity
  public class DetPedido implements Serializable {
    private static final long serialVersionUID = 1L;
  
    @EmbeddedId
    protected DetPedidoPK detPedidoPK;
  
    @Basic(optional = false)
    @NotNull
    @Column(name = "CANTIDAD")
    private Integer cantidad;
  
    @Basic(optional = false)
    @NotNull
    @Column(name = "PRECIO_UNIDAD")
    private Double precioUnidad;
  
    @JoinColumn(name = "ID_PRODUCTO", referencedColumnName = "ID_PRODUCTO", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Producto producto;
  
    @JoinColumn(name = "ID_PEDIDO", referencedColumnName = "ID_PEDIDO", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Pedido pedido;
  
    // Getters and Setters //
  </code></pre>
  
  <p>And this is my DetPedidoPK:</p>
  
  <pre><code>@Embeddable
  public class DetPedidoPK implements Serializable {
  
    @Basic(optional = false)
    @NotNull
    @Column(name = "ID_PEDIDO")
    private Integer idPedido;
  
    @Basic(optional = false)
    @NotNull
    @Column(name = "ID_PRODUCTO")
    private Integer idProducto;
  
    // Getters and Setters //
  </code></pre>
  
  <p>The Entities ara generated automatically from the Database, also DetPedidoPK, and now I don't know how to save a Pedido. I tried with the code above, but it doesn't work.</p>
  
  <p>Can anybody help me?</p>
  
  <p>Greetings.</p>