Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为jpa实体配置ehcache.xml还是使用注释?_Java_Hibernate_Orm_Ehcache_Second Level Cache - Fatal编程技术网

Java 为jpa实体配置ehcache.xml还是使用注释?

Java 为jpa实体配置ehcache.xml还是使用注释?,java,hibernate,orm,ehcache,second-level-cache,Java,Hibernate,Orm,Ehcache,Second Level Cache,当使用ehcache而不是像这样定义语句时 <cache name="testonly.package.model.TestPOJOcategory" maxElementsInMemory="200" eternal="true" overflowToDisk="false" timeToIdleSeconds="300" timeToLiveSeconds="600" /> 参考:(它只显

当使用ehcache而不是像这样定义语句时

 <cache name="testonly.package.model.TestPOJOcategory"
        maxElementsInMemory="200"
        eternal="true"
        overflowToDisk="false"
        timeToIdleSeconds="300"
        timeToLiveSeconds="600"
    />

参考:(它只显示了EclipseLink,而不是ehcache)

据我所知,在Hibernate中,我们有这样的东西

@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class TestPOJOcategory {
...
}

这还有两个属性,
region
include
。要设置大小、有效期和所有这些,我什么都不知道。我认为,你应该考虑EHCACH的文档。

据我所知,在休眠中,我们有类似的事情,

@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class TestPOJOcategory {
...
}

这还有两个属性,
region
include
。要设置大小、有效期和所有这些,我什么都不知道。我认为,您应该考虑EHCache的文档。首先,即使大多数JPA持久性提供者(如Hibernate、Eclipse、……)为第二级缓存提供支持,JPA 1也做了<强>不>强>指定第二级缓存的支持。因此,在使用二级缓存时,实际上使用的是JPA扩展,这些扩展不是标准的,并且不能从一个提供者移植到另一个提供者。Hibernate的注释与EclipseLink的注释不同,也与OpenJPA的注释不可比。所有这些都是不同的,它们是专有的。如果您使用的是Hibernate(这是我对您前面问题的理解),那么您不应该看EclipseLink专有的东西(或者只看您的文化,但如果可以的话,这个问题超出了文化)

第二,是什么让你认为EclipseLink的注释与EHCache有关?另外,EclipseLink使用自己的,与EHCache无关


事实上,我觉得你在这里有点迷路了。你也许应该放慢一点速度,一步一步地做事情:选择一个解决方案,坚持下去,确定你必须做什么,一件一件地实施,然后让整个过程正常运转。专注于你的目标,暂时停止收集更多信息,花些时间消化你学到的新东西

首先,即使大多数JPA持久性提供程序(如Hibernate、EclipseLink等)提供对二级缓存的支持,JPA 1.0也没有指定对二级缓存的支持。因此,在使用二级缓存时,实际上使用的是JPA扩展,这些扩展不是标准的,并且不能从一个提供者移植到另一个提供者。Hibernate的注释与EclipseLink的注释不同,也与OpenJPA的注释不可比。所有这些都是不同的,它们是专有的。如果您使用的是Hibernate(这是我对您前面问题的理解),那么您不应该看EclipseLink专有的东西(或者只看您的文化,但如果可以的话,这个问题超出了文化)

第二,是什么让你认为EclipseLink的注释与EHCache有关?另外,EclipseLink使用自己的,与EHCache无关


事实上,我觉得你在这里有点迷路了。你也许应该放慢一点速度,一步一步地做事情:选择一个解决方案,坚持下去,确定你必须做什么,一件一件地实施,然后让整个过程正常运转。专注于你的目标,暂时停止收集更多信息,花些时间消化你学到的新东西

当然,这是通过注释告诉您的。你应该用其中一个。使用这两种方法意味着xml配置将覆盖注释thingie.okie。。谢谢你的夸奖。文章…提到了不同的东西,它说,两者都必须指定@anotatino并配置里面的实体ehcache@Vinegar你确定吗?我的意思是,配置实体缓存是一回事,但配置缓存提供程序是另一回事。一个并不排除另一个。我想科梅塔把我的答案和那篇博文搞混了。所以,Cometa,在另一篇文章中,你坚持Pascal的建议,明确你对已经知道的内容的理解。当然,这就是你通过注释所说的,是否必须使用se config insie ehcache.xml。你应该用其中一个。使用这两种方法意味着xml配置将覆盖注释thingie.okie。。谢谢你的夸奖。文章…提到了不同的东西,它说,两者都必须指定@anotatino并配置里面的实体ehcache@Vinegar你确定吗?我的意思是,配置实体缓存是一回事,但配置缓存提供程序是另一回事。一个并不排除另一个。我想科梅塔把我的答案和那篇博文搞混了。因此,Cometa,在另一篇文章中,您坚持Pascal的建议,并澄清您对已经知道的内容的理解。但是,如果使用注释,则问题中提供的xml配置将不再是必需的。唯一需要的配置是配置EhCache,而不是哪个实体正在使用缓存。我希望我能澄清您的疑问。但是,如果使用注释,则问题中提供的xml配置将不再是必需的。唯一需要的配置是配置EhCache,而不是哪个实体正在使用缓存。我希望我能消除你的疑虑。