sto ottenendo errore:HibernateException: Impossibile ottenere sessione di transazione sincronizzata per thread corrente
Exception in thread "main" org.hibernate.HibernateException:
Could not obtain transaction-synchronized Session for current thread
principale
ppService.deleteProductPart(cPartId, productId);
@Service ("productPartService")
@Override
public void deleteProductPart(int cPartId, int productId) {
productPartDao.deleteProductPart(cPartId, productId);
}
@Repository ("productPartDAO")
@Override
public void deleteProductPart(ProductPart productPart) {
sessionFactory.getCurrentSession().delete(productPart);
}
@Override
public void deleteProductPart(int cPartId, int productId) {
ProductPart productPart = (ProductPart) sessionFactory.getCurrentSession()
.createCriteria("ProductPart")
.add(Restrictions.eq("part", cPartId))
.add(Restrictions.eq("product", productId)).uniqueResult();
deleteProductPart(productPart);
}
Come risolvere il problema?
UPDATE:
Se modifico metodo come questo:
@Override
@Transactional
public void deleteProductPart(int cPartId, int productId) {
System.out.println(sessionFactory.getCurrentSession());
}
Restituisce:
SessionImpl(PersistenceContext[entityKeys=[],collectionKeys=[]];ActionQueue[insertions=[] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[] collectionQueuedOps=[] unresolvedInsertDependencies=UnresolvedEntityInsertActions[]])
Ma se rimuovo @Transactional
finisce con l'eccezione:
org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread
Lo faccio funzionare aggiungendo @Transactional
, ma ora sto ottenendo org.hibernate.MappingException: Unknown entity: ProductPart
anche se ho incatenato .uniqueResult()
a Criteria
. Come sistemarlo?
tentativo di iniziare la transazione utilizzando 'session.getTransaction() begin();.' E vedere se funziona? Anche il metodo 'createCriteria' restituisce' CriteriaImpl' quindi non puoi lanciarlo direttamente su 'ProductPart' – Chaitanya
@Chaitanya, Se non riesco a trasmettere in quel modo, qual è la soluzione più semplice? –
RCola, non sono chiaro sul tuo commento, puoi elaborare? – Chaitanya