当前位置: 首页 > 面试题库 >

使用Spring JPA和Hibernate访问Session以启用过滤器

叶德运
2023-03-14
问题内容

在Spring JPA + Hibernate环境中,我需要启用Hibernate实体过滤器。因此,我应该可以访问Hibernate
Session对象,但是我正在使用EntityManagerFactory和Spring
JPA魔术。有任何会话拦截器,因此每当Spring创建一个新的会话时,我都可以在其上调用enableFilters()方法吗?


问题答案:

我最终得到了AOP解决方案:

@Aspect
@Component
public class EnableFilterAspect {

    @AfterReturning(
            pointcut="bean(entityManagerFactory) && execution(* createEntityManager(..))",
            returning="retVal")
    public void getSessionAfter(JoinPoint joinPoint, Object retVal) {
        if (retVal != null && EntityManager.class.isInstance(retVal)) {
            Session session = ((EntityManager) retVal).unwrap(Session.class);
            session.enableFilter("myFilter").setParameter("myParameter", "myValue");
        }
    }

}


 类似资料:
  • 但我不确定这个方法是在正确的地方调用的。 编辑:我正在使用spring JpaRepositories来持久化/查询实体。

  • 我有一个启动火花工人的java应用程序:

  • 我正在使用Servlet过滤器来实施访问控制。扩展it以测试用户角色的最佳方式是什么?我能想出几种解决方案,但没有一种是优雅的。 编写角色测试并不难。但是如何将角色传递给给定url的过滤器? e、 在网络上。xml 谢谢

  • 我读了很多类似的问题,但没有一个解决方案对我有效,所以我发布了另一个:/我必须从我的angular客户端获得一些Tomcat 8.5.37服务器上的pdf文件,但我经常被Cors策略阻止。 如何正确添加Cosr标头? 我的客户端应用程序是一个角7应用程序,我正在使用“NG2-PDF-Viewer”模块显示pdf文件。根据模块文档,它对指定的URL进行HTTP get调用,以获取文件并显示它。根据,

  • 使用glTexParamteri配置OpenGL时(GL_Texture_2D、GL_Texture_MAG_FILTER等)和glTexParamteri(GL_纹理_2D,GL_纹理_MIN_过滤器,…)在使用纹理(…)访问着色器中的纹理时,OpenGL如何决定使用哪个过滤器? 我唯一的猜测是它正在计算像素足迹,但由于您可以在片段或顶点着色器中访问纹理,它无法知道在哪个基元上投影了什么纹理。

  • 问题内容: 我正在寻找一种在Java App(使用JDBC)中打开Access MDB文件的方法。 快速的Google搜索建议我为此需要JDBC-ODBC Bridge。 这是否意味着我需要配置要在其上运行应用程序的每个系统,以便为要打开的MDB提供ODBC DSN? 还有一个问题(因为我以前从未使用过ODBC):通信是通过某种套接字(以客户机/服务器方式)还是通过方法/函数调用(例如嵌入Derb