Esse seu get é de um atributo simples (por exemplo getNome) ou é de outra entidade (por exemplo: getCidade) ?
Se for de uma entidade, tem que ter certeza que a transação está ativa, ou então tem que usar o FetchType.EAGER, ou ainda fazer um find usando JOIN FETCH
dooda
BuEnAs Jair…
Ainda é o get da propria entidade, na session do hibernate como segue…
para essas manipulações fiz uma classe intermediária, mas acho que isso nao influi…
Naquele FindById o problema…
mas se eu abrir uma transação antes de executar (o que acredito não ter lógica), não acontece o erro…
abraço!!
Jair_Rillo_Junior
Eu tinha entendido errado :oops:
Eu pensei que era os métodos getters and setters.
Bom, em específico do hibernate eu não sei, porém segundo a especificação da JPA, tanto o método find e getReference não precisam estar associados a uma transação. No caso do Hibernate eu não sei te dizer
ThiagoWorldCoder
não precisa.
dooda
pois é, eu sempre pensei que não, mas ele “The Hibernate” está xaropiando…
deve ter algo errado em outro lugar, vou dar uma acompanhada mais afundo…
Vallew’s
Abraço!!
Rubem_Azenha
Você esta tentando alterar o objeto obtido pelo Hibernate?
Isso já aconteceu comigo, só que eu não me lembro o que eu fiz pra resolver… mas, olhando bem o seu código, eu percebi que o erro está a partir do seu PersistenceUtil!
Observe bem o como você fez o seu PersistenceUtil, que erro está por lá… caso contrário, posta o código aí!!
dooda
Buenas Thiago, sou Javeiro e nao desisto nunca…
Realmente tem algo de errado por aqui, mas nao consigo achar, creio nao ser meu
PersistenceUtil, por que fiz diretamente pelo Session do hibernate:
Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();
e = (Endereco)sessao.get(Endereco.class, 456);
Sendo que HibernateUtil é este:
packagecom.erp.persistence;importorg.hibernate.SessionFactory;importorg.hibernate.cfg.AnnotationConfiguration;publicclassHibernateUtil{privatestaticfinalSessionFactorysessionFactory;static{try{// Create the SessionFactory from hibernate.cfg.xmlsessionFactory=newAnnotationConfiguration().configure().buildSessionFactory();}catch(Throwableex){// Make sure you log the exception, as it might be swallowedSystem.err.println("Initial SessionFactory creation failed."+ex);thrownewExceptionInInitializerError(ex);}}publicstaticSessionFactorygetSessionFactory(){returnsessionFactory;}}
e o erro:
org.hibernate.HibernateException: get is not valid without active transaction
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:297)
at $Proxy17.get(Unknown Source)
at com.erp.app.TestePessoa.main(TestePessoa.java:52)
e ele continua xaropeando…
Mas vallew pela força, pelo menos sei que alguem mais já passou por essa…