Estou com um problema ao gravar itens de uma programação de equipamentos.
Classe de Programação Equipamento
@Entity
@Table(name = "PROGRAMACAOEQUIPAMENTO")
public class ProgramacaoEquipamento extends ObjetoPersistenteCollectionImpl implements Serializable {
@OneToMany(cascade = CascadeType.ALL, mappedBy = "programacaoEquipamento", fetch = FetchType.LAZY, orphanRemoval = true)
private Collection<ItemProgramacao> itemProgramacaoCollection;
...
Classe de Item Programação
@Entity
@Table(name = "ITEMPROGRAMACAO")
public class ItemProgramacao extends ObjetoPersistenteCollectionImpl implements Serializable {
@JoinColumn(name = "FK_ITEMPROGRAMACAO_EQUIPAMENTO", referencedColumnName = "ID", nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Equipamento equipamento;
@JoinColumn(name = "FK_ITEMPROGRAMACAO_PROGRAMACAOEQUIPAMENTO", referencedColumnName = "ID", nullable = false)
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private ProgramacaoEquipamento programacaoEquipamento;
@Basic(optional = true)
@Size(min = 1, max = 12,message="Descrição deve possuir no máximo 12 caracteres.")
@Column(name = "NUMEROSERIE", nullable = true, length = 12)
private String numeroSerie;
O que ocorre é que se o usuário informa que quer 5 Equipamentos (Ex.: Martelo), então irei criar 5 objetos do ItemProgramacao :
ProgramacaoEquipamento programacao = new ProgramacaoEquipamento ();
ItemProgramacao itemProgramacao = new ItemProgramacao();
itemProgramacao.setEquipamento(equipamento);
programacaoEquipamento.setItemProgramacaoCollection(Collections.nCopies((int) quantidade, itemProgramacao));
E insiro isto usando persist. É inserido apenas um item de programação. Acredito que isto possa estar acontecendo pois a lista de ItemProgramacao são cópias.
Teria alguma forma de utilizar Collections.nCopies sem que o objeto fique sincronizado ?