2012-08-02 45 views
0

为了实现会话中视休眠模式,我用我的自定义ServletFilter中那样:春天BlazeDS的使用Hibernate的Session-IN-视图模式

public void doFilter(ServletRequest request, ServletResponse response, 
     FilterChain chain) throws IOException, ServletException { 
    try { 
     // Starting a database transaction 
     sessionFactory.getCurrentSession().beginTransaction(); 
     // Continue the request 
     chain.doFilter(request, response); 
     // Committing the database transaction 
     sessionFactory.getCurrentSession().getTransaction().commit(); 
    } catch (StaleObjectStateException se) { 
     // Some codes here 
    } 
} 

看来请求被处理后,该交易将被提交。但是,当我们使用Spring BlazeDS Integration将来自Flex的输出序列化时,会出现一个问题:

BlazeDS在事务提交之前(在line chain.doFilter)使用lazy fetch对结果对象及其所有子对象进行序列化。如此多的查询洪泛数据库来获取对象,有时它永远不会完成。

我该如何解决这个问题?有任何配置来限制BlazeDS中序列化的深度?

回答

0

不是直接回答你的问题,但你可以看看到GraniteDS:它配备了完整的延迟加载支持(见文档herehere)和Spring框架(文档here)大整合。