package bce.server.dao.hibernate; import org.hibernate.Session; import org.hibernate.SessionFactory; import bce.server.dao.BCESystemDAO; import bce.server.entities.PersistentBCESystem; /** * 服务器端BCE系统DAO的Hibernate实现 * * @author robins * */ public class BCESystemHibernateDAO implements BCESystemDAO { SessionFactory factory; public void setFactory(SessionFactory factory) { this.factory = factory; } public BCESystemHibernateDAO() {} /* * (non-Javadoc) * @see bce.server.dao.BCESystemDAO#get(java.lang.Integer) */ @Override public PersistentBCESystem get(Integer systemId) { Session session = factory.openSession(); return (PersistentBCESystem) session.get(PersistentBCESystem.class, systemId); } /* * (non-Javadoc) * @see bce.server.dao.BCESystemDAO#add(bce.server.entities.PersistentBCESystem) */ @Override public void add(PersistentBCESystem system) { Session session = factory.openSession(); session.beginTransaction(); session.save(system); session.getTransaction().commit(); if (session.isOpen()) session.close(); } /* * (non-Javadoc) * @see bce.server.dao.BCESystemDAO#update(bce.server.entities.PersistentBCESystem) */ @Override public void update(PersistentBCESystem system) { Session session = factory.openSession(); session.beginTransaction(); session.update(session.merge(system)); session.getTransaction().commit(); if (session.isOpen()) session.close(); } /* * (non-Javadoc) * @see bce.server.dao.BCESystemDAO#delete(bce.server.entities.PersistentBCESystem) */ @Override public void delete(PersistentBCESystem system) { Session session = factory.openSession(); session.beginTransaction(); session.delete(session.merge(system)); session.getTransaction().commit(); if (session.isOpen()) session.close(); } }