hibernate死锁

首先,在向数据库中批量插入数据的时候得作一个事务,然后,需要在插入数据之前把相应表中的所有数据清除。这里遇到死锁,原因是在删除数据和插入数据时发生了死锁,解决的办法是将删除数据查询加锁,代码:

String hql = + ..getName()List<NewsCrawler> newsList = .getSession().createQuery(hql).setLockMode(..getName()LockMode.).list()Session session = ..openSession()Transaction tx = session.beginTransaction()(i=i<newsList.size()i++){
    newsList.get(i).setState(BaseEnum.NewsStateEnum.)session.update(newsList.get(i))}
tx.commit()session.close()
显示UPGRADE已过期==


你可能感兴趣的:(hibernate死锁)