0

为了实现 session-in-view Hibernate 模式,我像这样使用了我的自定义 ServletFilter:

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 在提交事务之前使用惰性获取序列化结果对象及其所有子对象(在 chain.doFilter 行)。如此多的查询淹没了数据库以获取对象,有时它永远不会完成。

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

4

1 回答 1

0

不是对您的问题的直接回答,但您可以看看GraniteDS:它具有完整的延迟加载支持(请参阅此处此处的文档)以及与 Spring 框架的出色集成(此处的文档)。

于 2012-08-07T14:17:07.643 回答