I am getting error:
Exception in thread \"main\" org.hibernate.HibernateException:
Could not obtain transaction-synchronized Session for current thread
I had same error as "org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread"
I just used @Transactional(readOnly = false) in my Dao implementation resolved my issue
The error org.hibernate.MappingException: Unknown entity: ProductPart
indicates there is no entity with name ProductPart
. One way to fix this issue is to pass the Class
object to createCriteria
method as:
createCriteria(ProductPart.class)
From API the difference in using String and Class is as follows:
Session.createCriteria(String)
Create a new Criteria instance, for the given entity name.
Session.createCriteria(Class)
Create a new Criteria instance, for the given entity class, or a superclass of an entity class, with the given alias.
If you pass a String then hibernate looks for an entity whose name is declared as ProductPart
.
With Hibernate 4.x and Spring 4.x, just Add @Transactional after @Repository it will solve this synchronizaion exception.
You must enable the transaction support (<tx:annotation-driven>
or @EnableTransactionManagement
) and declare the transactionManager and it should work through the SessionFactory.
You must add @Transactional
into your @Repository
With @Transactional
in your @Repository
Spring is able to apply transactional support into your repository.
Your Student class has no the @javax.persistence.*
annotations how @Entity
, I am assuming the Mapping Configuration for that class has been defined through XML.
Ref