Estou seguindo um exemplo de livro (Grails in Action 2nd edition), baseado no Grails 2. *, mas estou usando o novo Grails 3.0.1.
Quando crio uma classe de domínio que se parece com:
package qotd
class Quote {
String content
String author
Date created = new Date()
}
Eu recebo uma exceção sempre que tento interagir com o banco de dados por meio do console do groovy.
org.springframework.dao.DataAccessResourceFailureException: Could not obtain current Hibernate Session;
Caused by: org.hibernate.HibernateException: No Session found for current thread
Tentei adicionar @Transactional ao domínioclasse e também swith para uma versão JDK mais baixa (7), mas nenhuma delas funciona. Também testei com Grails 3.0 e os resultados são os mesmos. Se eu fizer o downgrade para o Grails 2.5.0, ele funcionará, portanto é um problema do Grails 3. *. Gradle pode ser o problema.
Respostas:
7 para resposta № 1Enrolei tudo dentro de uma transação para Grails 3
qotd.Quote.withTransaction {
new qotd.Quote(author: "Larry Wall",
content: "There is more than one method to our madness.").save()
}