I just upgrade to hibernate 6.2 and see the error message
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name ‘generalDao’: Injection of resource
dependencies failed
Caused by: java.lang.NoClassDefFoundError: org/hibernate/criterion/Criterion
Caused by: java.lang.ClassNotFoundException: org.hibernate.criterion.Criterion from [Module
“deployment.SLISEAR-0.0.1-SNAPSHOT.ear.SLIS-0.0.1-SNAPSHOT.war” from
Service Module Loader]”}}
I google and suggest remove HibernateTemplate, but in generalDao.java (the error class mentioned in stacketrace), I already comment out HibernateTemplate and does not find any HibernateTemplate or criterion usage, but why still prompt this error?
/*
*
*/
package xxx.slis.dao;
import xxx.dao.api.IGeneralDao;
import java.io.Serializable;
import org.hibernate.Hibernate;
import org.hibernate.query.NativeQuery;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
// TODO: Auto-generated Javadoc
/**
* The Class GeneralDao.
*/
@Transactional
@Repository
public class GeneralDao extends SLISDaoSupport implements IGeneralDao {
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.SLISDaoSupport#getUserID()
*/
public String getUserID() {
return super.getUserID();
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.SLISDaoSupport#getUserPost()
*/
public String getUserPost() {
return super.getUserPost();
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#merge(java.lang.Object)
*/
public void merge(Object obj) throws DataAccessException {
this.getHibernateSession().merge(obj);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#evict(java.lang.Object)
*/
public void evict(Object obj) throws DataAccessException {
this.getHibernateSession().evict(obj);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#load(java.lang.Class, java.io.Serializable)
*/
public Object load(Class clazz, Serializable s) throws DataAccessException {
return this.getHibernateSession().load(clazz, s);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#get(java.lang.Class, java.io.Serializable)
*/
public Object get(Class clazz, Serializable s) throws DataAccessException {
return this.getHibernateSession().get(clazz, s);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#initialize(java.lang.Object)
*/
public void initialize(Object proxy) throws DataAccessException {
//this.getHibernateTemplate().initialize(proxy); // hibernate 6 doesnot support getHibernateTemplate
Hibernate.initialize(proxy);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#delete(java.lang.Object)
*/
public void delete(Object object) throws DataAccessException {
this.getHibernateSession().delete(object);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#save(java.lang.Object)
*/
public void save(Object object) throws DataAccessException {
this.getHibernateSession().save(object);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#refresh(java.lang.Object)
*/
public void refresh(Object object) throws DataAccessException {
this.getHibernateSession().refresh(object);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#update(java.lang.Object)
*/
public void update(Object object) throws DataAccessException {
this.getHibernateSession().update(object);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#saveOrUpdate(java.lang.Object)
*/
public void saveOrUpdate(Object object) throws DataAccessException {
this.getHibernateSession().saveOrUpdate(object);
}
/* (non-Javadoc)
* @see hk.housingauthority.slis.dao.api.IGeneralDao#flush()
*/
public void flush() throws DataAccessException {
this.getHibernateSession().flush();
}
public long getNextSequence(String sequenceName) throws DataAccessException {
String sql = "SELECT " + sequenceName + ".NEXTVAL FROM DUAL";
NativeQuery query = this.getHibernateSession().createNativeQuery(sql);
Object row = query.list().get(0);
long key = Long.parseLong(row.toString());
return key;
}
}
/*
*
*/
package xxx.slis.dao;
import xxx.slis.dao.api.IGeneralDao;
import java.io.Serializable;
import org.hibernate.Hibernate;
import org.hibernate.query.NativeQuery;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
// TODO: Auto-generated Javadoc
/**
* The Class GeneralDao.
*/
@Transactional
@Repository
public class GeneralDao extends SLISDaoSupport implements IGeneralDao {
.....
public Session getHibernateSession() {
return this.getSessionFactory().getCurrentSession();
}
......
}