gpt4 book ai didi

java - 在 hibernate 中使用连接的最佳方式是什么

转载 作者:行者123 更新时间:2023-11-30 08:34:12 25 4
gpt4 key购买 nike

以前我使用 HibernateTemplate(spring 3) 来自动处理打开连接和关闭连接。但是从 spring 4 开始,HibernateTemplate 被弃用了。目前我正在使用 HibernateUtil 作为:

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;
}
}

并在主要中访问为:

Session s1 = HibernateUtil.getSession();

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

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

这是一个简单的假人。

这是正确的使用方法还是有更好的替代品?

最佳答案

@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/

关于java - 在 hibernate 中使用连接的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38967856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com