E ai pessoal, tudo bem?
Estou desenvolvendo uma aplicação com JPA2.0.
Tenho uma entidade a qual consigo persistir, todavia não consigo fazer update nos relacionamentos oneToMany
@Entity
@Table(name = "cesta")
public class Cesta implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(unique = true, nullable = false)
int id
@Column(length = 150, nullable = false)
String nome
@Column(length = 1)
String identificador
@Lob
String descricao
@ElementCollection
@CollectionTable(name="palavra_chave")
List<PalavraChave> palavraChave = new ArrayList<PalavraChave>()
@OneToMany(mappedBy = "cesta", cascade = CascadeType.ALL)
List<CestaCha> cha = new ArrayList<CestaCha>()
Caso eu retire algum elemento da lista de palavraChave ou da lista cha, ele não retira do banco de dados com update.
A aplicação não dá erro, diz que foi atualizado, mas o banco continua igual como estava.
Para dar update nas entidades utilizo o seguinte código.
// update entidade
public T update(T entidade) {
EntityManager em = JPAUtil.getInstance().getEntityManager();
try {
entidade = em.merge(entidade);
em.getTransaction().commit();
return entidade;
} catch (PersistenceException e) {
// log
em.getTransaction().rollback();
return null;
} finally {
em.close();
}
}
Alguem sabe se a anotação @ElementCollection faz cascade? ou estou fazendo algo errado ?