/* * Copyright 2007 the original author or jdon.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.jdon.persistence.hibernate; import java.io.Serializable; import javax.sql.DataSource; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import com.jdon.persistence.DaoCRUD; import com.jdon.persistence.hibernate.util.ThreadLocalSessionProvider; /** * <component name="daoCRUD" class="com.jdon.model.HibernateCRUDTemplate"/> <component name="hibernateConfFactory" class="com.jdon.model.crud.AnnotationConfFactory"> <constructor value="/hibernate.cfg.xml"/> </component> * @author banq * */ public class HibernateCRUDTemplate implements DaoCRUD { /** * */ private static final long serialVersionUID = -935866148100826167L; protected DataSource dataSource; protected SessionProvider sessionProvider; protected HibernateTemplate hibernateTemplate; public HibernateCRUDTemplate(ConfFactory hibernateConfFactory) { this.dataSource = hibernateConfFactory.getDataSource(); SessionFactory sessionFactory = hibernateConfFactory.getSessionFactory(); this.sessionProvider = new ThreadLocalSessionProvider(sessionFactory); this.hibernateTemplate = new HibernateTemplate(sessionProvider); } public HibernateCRUDTemplate(Configuration cfg) { this.sessionProvider = new ThreadLocalSessionProvider(cfg); this.hibernateTemplate = new HibernateTemplate(sessionProvider); } /* (non-Javadoc) * @see sample.persistence.UserDaoIF#insert(sample.model.User) */ /* (non-Javadoc) * @see com.jdon.model.crud.DaoCRUDTemplate#insert(java.lang.Object) */ public void insert(Object o) throws Exception { getHibernateTemplate().save(o); } public void update(Object o) throws Exception{ getHibernateTemplate().update(o); } public void saveOrUpdate(Object o) throws Exception{ getHibernateTemplate().saveOrUpdate(o); } public void merge(Object o) throws Exception{ getHibernateTemplate().merge(o); } /* (non-Javadoc) * @see com.jdon.model.crud.DaoCRUDTemplate#delete(java.lang.Object) */ public void delete(Object o) throws Exception { getHibernateTemplate().delete(o); } /* (non-Javadoc) * @see sample.persistence.UserDaoIF#getUser(java.lang.String) */ /* (non-Javadoc) * @see com.jdon.model.crud.DaoCRUDTemplate#loadById(java.lang.Class, java.lang.String) */ public Object loadById(Class entity, Serializable id) throws Exception { return getHibernateTemplate().load(entity, id); } public HibernateTemplate getHibernateTemplate() { return hibernateTemplate; } public SessionProvider getSessionProvider() { return sessionProvider; } public DataSource getDataSource() { return dataSource; } public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } }