【问题标题】:Porting my hibernate Dao layer in a stand-alone java app?将我的休眠 Dao 层移植到独立的 Java 应用程序中?
【发布时间】:2012-04-27 14:25:13
【问题描述】:

我有一个使用 Hibernate 的 spring mvc 应用程序。 我在我的 Dao 方法中使用 sessionFactory.getCurrentSession(不支持休眠)。

我想知道的是,我必须做什么才能使用我的休眠数据库层 在非 Web 应用程序中?

我有一个独立的 java 应用程序(通过 main 运行),我在其中加载 spring 的应用程序上下文 以编程方式,然后获取我的服务层(这取决于我的休眠数据库层)。 我需要在我的 spring.xml 文件中做任何特别的事情来设置休眠的会话吗?

在我的 spring mvc web 应用程序中,我确实使用 @Transactional 注释对我的 Dao 方法进行了注释。 (我希望在每次调用的基础上进行交易,而不是针对一组数据库调用)。

P.S 在我的网络应用程序中,会话是如何创建/销毁的,是每个请求吗?

【问题讨论】:

    标签: java spring hibernate spring-mvc


    【解决方案1】:

    您可以从 ma​​in 方法中获取弹簧ApplicationContext。它的行为与网络中的完全相同。

    ApplicationContext context = new  ClassPathXmlApplicationContext("applicationContext.xml");
    YourDAO yDao = (YourDAO)context.getBean("yourDAO");
    yDao.callYourSpecialMethod();
    

    因此,从这一点来看,hibernate 没有依赖关系,它应该会自动工作。这里只是视图发生了变化,没有逻辑或结构变化。所以交易和其他事情应该照常进行。

    【讨论】:

    • 如果我希望会话事务持续每个请求怎么办?
    • request 有点混乱,基本上每次调用你的 DAO 方法时,都会创建一个 session 并在使用后关闭(假设事务在 DAO 层)。
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2017-12-19
    • 1970-01-01
    相关资源
    最近更新 更多