如何在不使用带有java配置的spring的orm.xml中注册实体监听器?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不使用带有java配置的spring的orm.xml中注册实体监听器?相关的知识,希望对你有一定的参考价值。
我有这个orm.xml文件来为所有实体全局注册AuditingEntityListener。
// orm.xml
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"
version="2.0">
<persistence-unit-metadata>
<persistence-unit-defaults>
<entity-listeners>
<entity-listener
class="org.springframework.data.jpa.domain.support.AuditingEntityListener" />
</entity-listeners>
</persistence-unit-defaults>
</persistence-unit-metadata>
</entity-mappings>
我知道我们可以使用带注释的抽象映射超类。但我不希望我的实体类扩展类。我正在使用kotlin数据类为实体类建模。
@MappedSuperClass
@EntityListeners(AuditingEntityListener.class)
public abstract class AbstractEntity {}
有没有办法在不使用带有java配置的orm.xml的情况下注册这个实体监听器?
答案
您可以在EventListenerRegistry上注册EntityListeners。
只需解开SessoinFactory:
SessionFactoryImplementor sessionFactory = entityManagerFactory.unwrap(
SessionFactoryImplementor.class );
sessionFactory
.getServiceRegistry()
.getService( EventListenerRegistry.class )
.prependListeners( EventType.LOAD, new SecuredLoadEntityListener() );
以上是关于如何在不使用带有java配置的spring的orm.xml中注册实体监听器?的主要内容,如果未能解决你的问题,请参考以下文章
java ssm框架中SpringMVC中具体如何配置啊,求各位知友们告诉一下,最好全
如何在带有注解配置的spring mvc中使用spring数据
对于带有 Derby db 的 Spring MVC 项目,我应该使用啥 ORM?
SpringBoot整合ORM开发框架MyBatis和JPA
如何在不使用查询缓存的情况下缓存 Spring Data JPA 查询方法的结果?
使用 Spring Security 和 Redis 对带有 Java 配置的 RESTFul api 进行基于 Cookie 的身份验证