Colegas,
tenho uma entidade como a do exemplo abaixo:
@Entity
@Table(name = "TB_ENTITY1")
public class Entity1{
private static final long serialVersionUID = -6089623438787261572L;
@Id
@SequenceGenerator(name = "sequence_entity1", sequenceName = "sq_entity1", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequence_entity1")
@Column(name = "ID_COLUMN")
private Long id;
@Column(name = "PROP1_COLUMN", nullable = false, length = 60)
private String property1;
@Column(name = "PROP2_COLUMN")
private String property2;
@Column(name = "PROP3_COLUMN")
private String property3;
@JoinTable(name = "TB_ENTITY2_ENTITY1", joinColumns = { @JoinColumn(name = "ID_ENTITY1",
referencedColumnName = "ID_ENTITY1") }, inverseJoinColumns = { @JoinColumn(name = "ID_ENTITY2",
referencedColumnName = "ID_ENTITY2") })
@ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
private List<Entity2> listEntity2;
@JoinTable(name = "TB_ENTITY3_ENTITY1", joinColumns = { @JoinColumn(name = "ID_ENTITY1",
referencedColumnName = "ID_ENTITY1") }, inverseJoinColumns = { @JoinColumn(name = "ID_ENTITY3",
referencedColumnName = "ID_ENTITY3") })
@ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
private List<Entity3> listEntity3;
//getters e setters
}
ela tem algumas propriedades Long e String e duas propriedades que são listas de outras entidades,
como podem ver (inclusive com as annotations @JoinTable e @ManyToMany).
quando faço alguma alteração nas propriedades String do objeto e persisto o mesmo, o merge( ) atualiza corretamente no banco.
mas, quando faço alguma alteração em alguma das listas do objeto (removendo ou adicionando elementos),
essas alterações não estão sendo persistidas no banco.
alguém poderia indicar alguma solução para o problema?
obrigado,
Tales.