我收到错误消息:
Exception in thread "main" org.hibernate.HibernateException:
Could not obtain transaction-synchronized Session for current thread
主要
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);
}
如何解决?
更新:
如果我修改这样的方法:
@Override
@Transactional
public void deleteProductPart(int cPartId, int productId) {
System.out.println(sessionFactory.getCurrentSession());
}
它返回:
SessionImpl(PersistenceContext[entityKeys=[],collectionKeys=[]];ActionQueue[insertions=[] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[] collectionQueuedOps=[] unresolvedInsertDependencies=UnresolvedEntityInsertActions[]])
但是,如果我删除@Transactional
它最终会出现异常:
org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread
我可以通过添加来使它工作@Transactional
,但现在org.hibernate.MappingException: Unknown entity: ProductPart
虽然链接.uniqueResult()
到了,但我还是可以Criteria
。如何解决?
错误org.hibernate.MappingException: Unknown entity: ProductPart
表明没有名称为的实体ProductPart
。解决此问题的一种方法是将Class
对象传递给createCriteria
方法为:
createCriteria(ProductPart.class)
在API中,使用String和Class的区别如下:
Session.createCriteria(字符串)
Create a new Criteria instance, for the given entity name.
Session.createCriteria(Class)
使用给定的别名,为给定的实体类或实体类的超类创建一个新的Criteria实例。
如果您传递一个String,那么休眠将查找其名称声明为的实体ProductPart
。
我对spring、hibernate和数据库都是新手。我收到“HibernateException:无法获取当前线程的事务同步会话”错误。请帮帮我.找到下面的代码。 这是控制器 这是EntityDaoImplementation 这是我的模特课 这是服务实现 这是ProductTable.jsp 这是web.xml null 这是Dispatcher servlet 这是ApplicationCo
尝试使用带批注的类时出现以下异常: 我初始化应用程序的方式很复杂,因此我需要提供一个指向完整基本代码的链接以获得更多信息:https://github.com/dtrunk90/webapp-base。我把它用作maven的覆盖层。 下面是必要的代码: 初始值设定项(来自webapp-base): 初始值设定项(来自我的webapp): (来自webapp-base): (来自我的webapp):
问题内容: 我从xml-转换为Java-Config的Spring4 / Hibernate4项目遇到以下异常。 该项目在Eclipse中启动了属性并且没有错误,但是在第一个请求出现Exception时。在我-class我已经配置为,,,。 我所有的服务都标有。 知道这可能来自哪里吗? 编辑1 根据要求,这里是堆栈跟踪: 编辑2 奇怪的是,我从另一个项目中完美地借用了整个Java-Config代码
我将一个Spring4/Hibernate4项目从xml-config转换为Java-config时遇到以下异常。 项目在Eclipse中启动upproperty和errorfree,但在第一个请求时出现异常。在我的类中,我为、、、配置了。 我的所有服务都用注释。 知道这是从哪来的吗? 编辑%1 根据要求,这里的StackTrace: 编辑2 奇怪的是,我从另一个工作完美无缺的项目中借用了整个Ja
问题内容: 我使用spring + hibernate创建了一个应用程序,但始终会收到此错误。这是我第一个使用hibernate的应用程序,我阅读了一些指南,但无法解决此问题。我在哪里做错了? 这是我的应用程序的代码 student.java studentDAO.java StudentDAOImpl.java MainApp.java springConfig.xml sql 问题答案: 你必
同样的问题已经被问了很多次了,但是请在重复之前仔细阅读我的问题。 我不想使用基于注释的事务管理,所以我的问题与这里提出的问题不同。 我的XML声明 遵循作为bean的DAO声明 我的TX建议 AOP配置 我的刀 我的模型 我的Hibernate映射文件 当我通过以下代码以编程方式运行此应用程序时, 它会抛出以下异常 org.hibernate.hibernateException:无法在org.s