HQL実践総括
2637 ワード
/**
* HQL HQL
* @param queryString hql
* @param parameters (null )
* @return
*/
protected List findByHqlQuery(final String queryString, final Object[] parameters) {
if(null==parameters){
return getHibernateTemplate().find(queryString);
}else{
return getHibernateTemplate().find(queryString, parameters);
}
}
/**
* HQL
* @param queryString
* @param parameters
*/
protected void updateByQuery(final String queryString, final Object[] parameters) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(queryString);
if (parameters != null) {
for (int i = 0; i < parameters.length; i++) {
query.setParameter(i, parameters[i]);
}//--setParam
}
query.executeUpdate();
session.flush();
return null;
}
});
}
/**
* HQL
* @param queryString
* @param parameters
*/
protected void updateBySQLQuery(final String queryString, final Object[] parameters) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createSQLQuery(queryString);
if (parameters != null) {
for (int i = 0; i < parameters.length; i++) {
query.setParameter(i, parameters[i]);
}//--setParam
}
query.executeUpdate();
session.flush();
return null;
}
});
}
/**
* HQL
* @param queryString
* @param parameters
* @return Integer
*/
protected Integer deleteByQuery(final String queryString, final Object[] parameters) {
return (Integer) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(queryString);
if (parameters != null) {
for (int i = 0; i < parameters.length; i++) {
query.setParameter(i, parameters[i]);
}
}
int rowNum = query.executeUpdate();
session.flush();
return new Integer(rowNum);
}
});
}
よく使われるHql文
1)複数フィールドの値を更新する
update InOutAccount i set i.stateCode=? ,i.checkDate=? ,i.checkOperator=? where i.operNumber=?