Oi Galera blz???
eu tenho uma duvida aqui!
Tenho esse mapeamento!!
O hibernate atualiza e insere a lista sem problemas…
O problema que quando vou remover, so faz um SELECT COMUM e nao DELETA o registro da tabela!
JA TENTEI USAR “ORPHAN_REMOVE” em @oneToMany e a anotacao @Cascade com REMOVE
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
@OneToMany(cascade = CascadeType.ALL, mappedBy = “solicito”)
@LazyCollection(LazyCollectionOption.TRUE)
@Fetch(FetchMode.SELECT)
private List solicitoClienteList;
Alguem ja passou por isso ???
Obrigadooo!
se vc tiver usando JPA 1, tem esse problema, entao vc tem que apagar a lista na mao…
Nao… estou usando jpa 2.0
ja tentei com
@Cascade(DELETE_ORPHAN)
@OneToMany(orphanRemoval = true)
mas NAO DELETA…
Alguem?
Ehhh nao deu…
O meu esta exatamente o que esta no exemplo que voce mandou!
Da uma excecao ‘NotEntityFound’ e mais nada!
era para funcionar o orphanRemoval = true, caso vc nao funcione, vc vai ter que apagar na mão… :?
cara,
fiz um teste aqui e funcionou blz, segue o exemplo
@Entity
@Table(name="teste1")
public class Teste1 implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int idteste1;
private String nome;
//bi-directional many-to-one association to Teste2
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="teste2")
private Teste2 teste2;
}
@Entity
@Table(name="teste2")
public class Teste2 implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int idteste2;
private String nome;
//bi-directional many-to-one association to Teste1
@OneToMany(mappedBy="teste2", orphanRemoval = true, cascade = CascadeType.ALL)
private List<Teste1> teste1;
}
public class Teste {
/**
* @param args
*/
public static void main(String[] args) {
EntityManager entityManager = Persistence.createEntityManagerFactory("PERSIST_UNIT").createEntityManager();
Teste2 teste2 = entityManager.find(Teste2.class, 1);
entityManager.getTransaction().begin();
entityManager.remove(teste2);
entityManager.getTransaction().commit();
}
}
Cara valeu pela ajuda ae!
Fazendo testes unitarios, como o seu por exemplo.
Funciona belezinha…
Mas em um escopo maior nao funciona, Ja debuguei o diabo aqui e nada!
Vo comecar a fazer denovo, vlw
Desculpa ressuscitar o tópico mas estava com este problema por alguns dias e resolvi usando merge ao invés de update.
Transaction tx = connection.beginTransaction();
connection.merge(obj);
tx.commit();