7

我在 Eclipse (Kepler) 中使用 JPA,尽管类中没有任何变化,但我的实体 Bean 偶尔会开始显示错误。

突然@Entity注释被突出显示为错误,相关的错误消息是:

实体“com.test.domain.Result”的给定名称为空。

如果我专门添加了名称属性(即@Entity(name="somename"),该行的“somename”部分将突出显示为错误。

清理项目,重新启动 Eclipse 并不能解决这个问题。我可以将这些类复制到一个新项目中,并且暂时不会出现错误,但是一旦出现(没有明显原因),我就无法摆脱它。

任何想法是什么导致它以及我该如何解决它?


更新:

好吧,我可以在项目属性中找到一个专门将此错误设置为警告(或忽略!)的工具(项目属性-> JPA-> 错误/警告-> 键入“实体名称为空”(列表中的第二个) ). 如果我这样做,一切正常,但是我仍然想知道首先是什么导致了错误。

4

6 回答 6

10

我可以在项目属性中找到一个专门将此错误设置为警告(或忽略!)的工具(项目属性 -> JPA -> 错误/警告 -> 键入“实体名称为空”(列表中的第 2 个。

稍后取消设置实际上不会导致错误返回,我猜 eclipse 与自身不同步。

于 2014-01-08T10:20:50.083 回答
4

我的项目中有同样的问题。我的应用程序在我的应用程序服务器中部署没有错误......这似乎是一个验证错误。我从“项目属性-> 项目方面”中删除了 JPA 方面。您可以改为关闭“JPA 验证”。

于 2014-02-24T05:47:43.973 回答
4

这是 Eclipse JPA Validator 无法识别的问题@ElementCollection,如果我删除此注释,则所有 21 个错误都从 eclipse 中消失,我删除是因为我不再需要它,已将其替换为实体。

于 2015-01-29T12:58:02.590 回答
2

您是否尝试调整 JPA 版本?我遇到了这个问题,我的 pom 中有 Hibernate JPA 2.0,并且项目 Facet 被配置为指向 JPA 2.1,所以我只是在项目 Facet 中将其更改为 JPA 2.0。

于 2015-04-27T12:19:33.940 回答
1

当我将“平台”(项目属性 - JPA)从“Hibernate 2.1”切换到“EclipseLink 2.5.x”时,我发现错误消失了。显然,JPA 验证器无法通过 Hibernate 进行验证。

于 2016-01-19T11:50:15.753 回答
0

可以贴一下班级代码吗?很可能您有一个分配了空字符串的名称属性。完全删除它,只留下注释标签@Entity。

于 2015-10-07T14:58:24.037 回答