Mar*_*ens 48 java eclipse orm jpa m2eclipse
我在eclipse中得到以下错误:
persistence.xml文件没有可识别的内容.
我的persistence.xml文件在我的应用程序中运行良好,但eclipse不断给我这个错误.移动文件并使用m2eclipse更新我的项目配置后,我得到了这个.我没有更改文件本身.谁知道如何解决这个问题?
persistence.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="localDB" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>package.Users</class>
<properties>
<!-- enable warnings for debugging -->
<property name="openjpa.Log" value="DefaultLevel=TRACE, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
<!-- connection properties -->
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/test"/>
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
<property name="openjpa.ConnectionUserName" value="root"/>
<property name="openjpa.ConnectionPassword" value=""/>
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
更新
看起来像m2eclipse中的一个bug与jpa结合使用.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=251323
通过设置选项暂时解决,将其显示为警告而不是错误
小智 32
我通过以下方式修复了问题(我正在使用RAD v8.5.1):
小智 16
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
Run Code Online (Sandbox Code Playgroud)
为我工作!
jad*_*ake 14
我弄清楚这里的问题是什么...... JPA Facet假设META-INF文件夹直接位于源文件夹下.如果您使用的是Maven项目,则可能有类似src/main/resources或src/test/resources的内容.如果你的persistence.xml在这些文件夹下,它会抱怨.如果你创建一个新的源文件夹(称之为"jpa")并在那里创建一个META-INF/persistence.xml,那么它会成功找到它.(我还必须做一个干净/关闭/打开的项目)
这当然是一种痛苦......我可以看到许多情况不会很好.
wil*_*rdy 13
我在Eclipse 3.6(Helios)中遇到了同样的问题.原因是JPA Facet设置为JPA版本1.0,但是我的persistence.xml文件指定了JPA版本2.所以我将JPA Facet更改为版本2.0并且问题消失了.(项目 - >属性 - >项目构面 - >"配置"下拉 - >将其设置为"最小JPA 2.0配置"
将此错误转换为警告可能会使问题消失,但它不会解决Eclipse Dali插件的潜在问题.这也意味着极其有用的JPA Structure和JPA Details视图不起作用.
OP提供的链接和大多数答案的方法实际上是为了解决一个不同的问题,其中Maven想要过滤persistence.xml文件,从而告诉Eclipse忽略它.这里解释了解决该问题的可行方法, 并涉及从项目属性的类路径中的src/main/resources条目中删除被排除的'**'.
回到OP的原始问题,我有这个完全相同的错误消息(它内外告诉你已经找到了persistence.xml文件).对我来说,解决方案是更改持久性XML元素:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
Run Code Online (Sandbox Code Playgroud)
对此:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
Run Code Online (Sandbox Code Playgroud)
一旦改变,错误消失了,Dali立即活跃起来,现在一切正常.希望有一天这会帮助某人.
对于某些Indigo(3.7)版本,该错误再次出现.请参见:https://bugs.eclipse.org/bugs/show_bug.cgi?id = 357810
右键单击项目 - > Maven - >更新项目配置...
这可能会破坏某些构建路径条目和/或部署程序集,非常烦人,所以只有在更改Maven deps时才这样做.
要解决persistence.xml消息,直到发布补丁,您需要在许多操作上清理项目,因为即使将错误级别设置为"ignore"也不起作用.这是一个完全无赖.
| 归档时间: |
|
| 查看次数: |
73407 次 |
| 最近记录: |