Deletando em @oneToMany

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?

ve esse link ai http://javablog.co.uk/2009/12/27/onetomany-fixes-in-jpa-2/

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();