Java 使用Hibernate、EhCache和Wildlfy设置二级缓存的参数

Java 使用Hibernate、EhCache和Wildlfy设置二级缓存的参数,java,hibernate,wildfly,ehcache,Java,Hibernate,Wildfly,Ehcache,我有一个使用Hibernate和EhCache作为二级缓存提供程序的应用程序。部署在Wildfly 8.2上的应用程序。 二级缓存按预期配置和工作,但我无法确定如何以通用方式在echache.xml配置中为二级缓存提供单独的配置。当前,我的设置如下所示: 实体: /** *乡村班 */ @实体 @表(name=“country”) @缓存(用法=cacheconcurrencysttrategy.READ\u WRITE,region=“ENTITY\u L2\u Cache”) 公共类国家扩展

我有一个使用Hibernate和EhCache作为二级缓存提供程序的应用程序。部署在Wildfly 8.2上的应用程序。 二级缓存按预期配置和工作,但我无法确定如何以通用方式在echache.xml配置中为二级缓存提供单独的配置。当前,我的设置如下所示:

实体:

/**
*乡村班
*/
@实体
@表(name=“country”)
@缓存(用法=cacheconcurrencysttrategy.READ\u WRITE,region=“ENTITY\u L2\u Cache”)
公共类国家扩展抽象持久实体{}
pesistence.xml文件


org.hibernate.jpa.HibernatePersistenceProvider
jdbc/app
假的
以及ehcache.xml文件


虽然我将实体配置为使用实体_L2_CACHCE作为二级缓存的区域,但hibernate使用的实际名称是

application.war#app_PU.ENTITY_L2_缓存

它使用部署名称加上持久化单元名称作为区域的前缀。我无法控制部署名称,因此无法将“application.war#app_PU.ENTITY_L2_CACHE”放入ehcache.xml。我不确定这是否与hibernate或wildfly服务器有关

有没有办法为未绑定到特定部署名称的二级缓存配置参数?

查看

org.hibernate.cfg.AvailableSettings
课堂上,我发现

'hibernate.cache.region_prefix'
控制缓存区域前缀的参数。因此,为了克服这个问题,我需要配置一些前缀,然后在二级缓存的ehCache.xml配置文件中使用这个前缀

应在persistence.xml文件中设置参数:

<property name="hibernate.cache.region_prefix" value="com.example.app"/>

查看

org.hibernate.cfg.AvailableSettings
课堂上,我发现

'hibernate.cache.region_prefix'
控制缓存区域前缀的参数。因此,为了克服这个问题,我需要配置一些前缀,然后在二级缓存的ehCache.xml配置文件中使用这个前缀

应在persistence.xml文件中设置参数:

<property name="hibernate.cache.region_prefix" value="com.example.app"/>