Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 persistence.xml缓存属性警告_Java_Jpa_Eclipselink - Fatal编程技术网

Java persistence.xml缓存属性警告

Java persistence.xml缓存属性警告,java,jpa,eclipselink,Java,Jpa,Eclipselink,我使用EclipseIndigoforEE开发来开发SE项目,只是为了从JPA项目支持中获益。 我创建了一个JPA项目,下面是persistence.xml文件的属性: <properties> <property name="eclipselink.persistence-context.reference-mode" value="WEAK" /> <property name="eclipselink.cache.sha

我使用EclipseIndigoforEE开发来开发SE项目,只是为了从JPA项目支持中获益。
我创建了一个JPA项目,下面是persistence.xml文件的属性:

    <properties>
        <property name="eclipselink.persistence-context.reference-mode" value="WEAK" />
        <property name="eclipselink.cache.shared.default" value="false"/>
        <property name="eclipselink.cache.size.default" value="5000"/>
        <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
        <property name="javax.persistence.jdbc.url"
            value="jdbc:derby:DB;create=true;" />

        <property name="eclipselink.ddl-generation" value="create-tables" />
        <property name="eclipselink.ddl-generation.output-mode" value="both" />
    </properties>
我使用的是eclipseLink的最新版本(2.3.0),这是指向EL文档的链接,其中有一个将属性设置到persistence.xml文件的示例。
有人知道警告的原因吗


请注意,我在一个普通java项目中使用了相同的属性,并且没有警告,它仅在使用JPA项目时出现。

它只是想告知使用EclipseLink实体缓存的情况。相反,它建议您可以使用JPA2.0中的缓存。此处介绍了其他来源中的用法:


为什么会这样做,最好的解释可能是请求添加这样一条消息:

感谢@MikkoM的链接。如果我没有遗漏什么,我认为解决方案是在persistenceunit元素下将元素设置为NONE(属性“eclipselink.cache.shared.default”用于JPA1.0)。但是,应用此解决方案会导致“eclipselink.cache.size.default”下的另一个警告==>这是否意味着“cache.size”属性(与“@cache”和“@Cacheable”注释相同)涉及第二级缓存(而不是第一级缓存)?这取决于您的目标。您应该得到所有这样的属性的警告,这些属性配置了与作为JPA2一部分的共享缓存配置重叠的内容。建议您删除这些设置。是标准JPA2配置,将其设置为“无”将禁用缓存。这当然会严重影响性能。eclipselink.cache.size.default关注共享缓存(~2级缓存)我实际上正在开发一个独立的Swing应用程序,它将使用一个唯一的扩展持久性上下文(EntityManager)。我的应用程序不需要共享缓存,因为没有任何并发性(根本没有其他持久性上下文),我只需要与我的唯一EM相关的一级缓存,使用持久性上下文弱模式将缓解任何内存管理问题。我已经删除了“cache.size”属性,但仍然不知道是否可以使用“@cache”和“@Cacheable”注释来优化一级缓存?它们都只用于二级缓存。这是不正确的。。。但无论如何,非常感谢你的回答。我会把答案标为接受。
"eclipselink.cache.shared.default" is a legacy entity caching property. Consider migration to JPA 2.0 and EclipseLink cache settings via annotation or XMLmapping file