PersistenceContextType: EXTENDED ou TRANSACT?

0 respostas
knik

Estudando a JPA mais profundamente, me deparei com isto:

Quando usar PersistenceContextType.EXTENDED ou PersistenceContextType.TRANSACT?

Olha uma discussão sobre isto aqui:
[url]http://www.guj.com.br/java/98508-lazyinitializationexception-2-dias-tentando-resolver--resolvido[/url]

No entanto, segundo a documentação, usando o tipo EXTENDED, temos:
1) todas as operações de leitura podem ser executadas fora de uma transação:
 - find(), 
- getReference(), 
 - refresh(), e 
 - consultas afins usando queries.

2) Algumas operações de modificações podem ser executadas fora de uma transação,
ficando na fila ateh o momento em que ocorrer uma chamada deste tipo: 
- persist(),
 - merge(), 
- remove(). 

3) Algumas operações não podem ser chamadas fora de uma transação: 
- flush (), 
- lock().
Então eu não vejo muito porque não usar o tipo EXTENDED.

Gostaria que o pessoal da Caelum, que tem bastante experiência, se pudesse esclarecer prá gente um pouco mais sobre o assunto, que é tão importante, mas ainda permanece meio obscuro, colocando um ponto final nesta discussão que até hoje ninguém consegue esclarecer com objetividade.

Obrigado a todos.

Criado 29 de março de 2011
Respostas 0
Participantes 1