Eclipse3.7实体验证错误(不在3.6中)

Eclipse3.7实体验证错误(不在3.6中),eclipse,hibernate,jpa,eclipse-wtp,Eclipse,Hibernate,Jpa,Eclipse Wtp,我有大约100个错误标记,每条消息50个。但不是每个实体都有错误标记,Account类没有,而是每个具有Account字段的类。具有易出错实体(具有帐户字段的类)作为字段的类也没有此错误 类“com.model.AccountChange”已映射,但未包含在任何持久化单元AccountChange.java中此标记位于类定义的行上,而不是@Entity注释 @Entity public class AccountChange extends BaseObject { 下一个错误标记位于@Man

我有大约100个错误标记,每条消息50个。但不是每个实体都有错误标记,Account类没有,而是每个具有Account字段的类。具有易出错实体(具有帐户字段的类)作为字段的类也没有此错误

类“com.model.AccountChange”已映射,但未包含在任何持久化单元AccountChange.java中
此标记位于类定义的行上,而不是@Entity注释

@Entity
public class AccountChange extends BaseObject {
下一个错误标记位于@ManyToOne注释的行上
目标实体“com.model.Account”的“Account”不是实体

@ManyToOne(cascade = { CascadeType.ALL })
@NotNull
private Account account;
我下载了Eclipse3.7IndigoJavaEE并安装了subclipse和JBossTools3.3M2

该项目在Eclipse3.6中运行良好,其他人遇到了相同的错误并切换回3.6,但我想可能有人知道其来源

编辑:第一个标记可以通过projectproperties->JPA->Discover注释类自动解析 另一个错误仍然存在

编辑:这很奇怪,剩下的59个错误中有57个是帐户字段。我的模型类路径中有一个单独的persistence.xml。如果我添加com.model.Account类,如果我将其更改为AccountGroup,则会出现错误“类无法解决”。其余2个错误也无法解决。其他实体可以是

<?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="project">
<class>com.model.AccountGroup</class>
</persistence-unit>
</persistence>

com.model.AccountGroup

那么,Account类是否有@Entity注释,它是否存在于persistence.xml文件中

我们在eclipse开发的源文件夹中有一个 复制到此处)和其他替换该文件以供开发或使用的文件 服务器

这就是您的问题,JPA验证目前仅支持每个项目的单个持久化单元或persistence.xml:


您可以尝试将
false
添加到META-INF文件夹中的persistence.xml中。相反,将其设置为
true
,并在其中列出所有实体类,而不仅仅是AccountGroup。

我也有同样的错误,但将JPA安装到项目方面并使其可发现有助于我……)谢谢

如果您知道这些不是错误,您可以:

窗口->首选项->Java持久性->JPA->错误/警告


在属性下,将“目标实体不是实体”更改为忽略

它有一个@entity注释,但不在persistence.xml中,就像我写的那样,它工作了,并且仍然工作,第一个标记“使用项目属性->JPA->自动发现带注释的类”解决第二个仍然是persistence你的意思是说你有多个persistence.xml文件吗?耶,我们在eclipse开发的源文件夹中有一个(我在这里复制的那个)其他两个persistence dev/prod.xml文件位于project/resources中,因此我认为他无论如何都找不到它们。但是今天忘了带笔记本电脑,明天会测试。不,没用。它们在不同的文件夹中有不同的名称,构建脚本将用它们覆盖该名称。但thx50标记用于引用Account类的实体,2标记用于其他两个实体。标记始终位于注释@ManyToOne(fetch=FetchType.LAZY)上或仅位于@ManyToOne上,消息为“Target entity”com.model.Account“for”spawnedAccount“不是实体”在
com.model.Account
上的注释是什么<代码>@Entity或
@MappedSuperclass