MaTouChuanZhi/src/com/allde/framework/dao/impl/AbstractDAOHibernateImpl.java
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
package com.allde.framework.dao.impl;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.allde.framework.dao.dao.DAO;
import com.allde.framework.model.Model;
import com.allde.framework.util.PagerModel;
/**
* 构造方法的参数必须传 两个抽象方法必须覆盖,注意他们两个的命名是有联系的 如果想外键式的真实值/表现值转换,需要覆盖4个方法(不是抽象的)
*
* @author Administrator
*
* @param <M>
* @param <QM>
*/
public abstract class AbstractDAOHibernateImpl<M extends Model, QM extends M>
extends HibernateDaoSupport implements DAO<M, QM> {
protected final Class<M> clazz;
private final String modelName;
protected AbstractDAOHibernateImpl(Class<M> clazz) {
this.clazz = clazz;
this.modelName = clazz.getSimpleName();
}
public final Serializable create(M model) {
return this.getHibernateTemplate().save(model);
};
public final boolean delete(int id) {
@SuppressWarnings("unchecked")
M model = (M) this.getHibernateTemplate().load(clazz, id);
this.getHibernateTemplate().delete(model);
return true;
}
public final boolean update(M model) {
this.getHibernateTemplate().update(model);
return true;
}
public final M getSingle(int id) {
final String hql = this.generateHQLSelect() + " From " + this.modelName
+ " o " + this.generateHQLFrom() + " Where 1=1 "
+ this.generateHQLJoinCondition()
+ "and o.id=:id order by o.id";
Query query = this.getSession().createQuery(hql);
query.setInteger("id", id);
List<M> list = this.prepareResult(query.list());
if (list == null || list.size() == 0) {
后面还有 118 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。