2016-08-16 7 views
2

これまでは、開閉の自動開閉を扱うHibernateTemplate(spring 3)を使用しました。 しかし、春4以降からHibernateTemplateは省略されています。これは単純なダミーである休止状態で接続を使用する最良の方法は何ですか

Session s1 = HibernateUtil.getSession(); 

Transaction tx = s1.beginTransaction(); 
s1.save(er); 

tx.commit(); 
s1.close(); 

:として

public class HibernateUtil { 

    private static final SessionFactory sessionFactory; 
    static { 
      sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); 

    } 

    public static Session getSession(){ 
     return sessionFactory.openSession(); 
    } 

    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 
} 

メインアクセス中:現在、私はとしてHibernateUtilのを使用しています。

これを使用するのが正しい方法ですか、それとも優れた代替品がありますか?

答えて

2
@Repository 
public class CarDaoImpl implements CarDao { 

    protected EntityManager entityManager; 

    public EntityManager getEntityManager() { 
     return entityManager; 
    } 
    @PersistenceContext 
    public void setEntityManager(EntityManager entityManager) { 
     this.entityManager = entityManager; 
    } 

    @Transactional 
    public List<Car> getCars() throws DataAccessException { 
     Query query = getEntityManager().createQuery("select c from Car c"); 
     List<Car> resultList = query.getResultList(); 
     return resultList; 
    } 
    @Transactional 
    public Car getCar(Long carId) throws DataAccessException { 
     return getEntityManager().find(Car.class, carId); 
    } 

参照してください。 〜https://hop2croft.wordpress.com/2011/07/06/jpa-basic-example-with-entitymanager-spring-and-maven/

関連する問題