开发者社区> 问答> 正文

hibernate jpa 拦截器使用:报错 

项目使用的是sping集成hibernate想拦截sql语句的执行,额外增加一些业务逻辑更改执行的sql语句,

了解到hibernate有拦截器可以使用,但是看了现项目的配置,是使用了jpa,配置如下

<bean id="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="persistenceUnitName" value="eshop_db" />
		<property name="dataSource" ref="dataSource"></property>
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
				<property name="database" value="MYSQL"></property>
				<property name="showSql" value="true"></property>
			</bean>
		</property>
	</bean>
拦截器应该怎么配置?

查找的资料直接使用hibernate是

 <property name="entityInterceptor">                <ref bean="sqlIntercept"/>           </property>   就可以了,但这里没有此属性可以设置。

展开
收起
kun坤 2020-06-08 16:32:55 448 0
1 条回答
写回答
取消 提交回答
  • 同问啊,楼主的问题解决了没,我用的是spring data,看源码里面也没有这个拦截器

    ######是否解决?######同求###### 在 jpaProperties 中增加属性 hibernate.ejb.interceptor 如下:

    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="persistenceProvider" ref="persistenceProvider"/>
            <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/>
            <property name="packagesToScan" value="${jpa.scan.package}"/>
            <property name="jpaProperties">
                <props>
                    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                    <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
                    <!-- 公共字段处理拦截器 -->
                    <prop key="hibernate.ejb.interceptor">com.elves.api.orm.CommonFieldInterceptor</prop>
                </props>
            </property>
        </bean>
    2020-06-08 16:33:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载