实体“ClassName”的给定名称为空

时间:2013-07-16 11:58:48

标签: eclipse jpa

我在Eclipse(Kepler)中使用JPA,虽然课堂上没有任何变化,但我的Entity Beans偶尔会出现错误。

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

  

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

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

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

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


更新

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

6 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

这是Eclipse JPA Validator无法识别@ElementCollection的问题,如果我删除了这个注释,那么所有21个错误都会从eclipse中消失,我删除了因为我不再需要它了,所以用实体替换了它。 / p>

答案 3 :(得分:1)

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

答案 4 :(得分:0)

你试过调整JPA版本吗? 我有这个问题,我的pom中有Hibernate JPA 2.0,项目Facet配置为指向JPA 2.1所以我只是在项目Facet中将其更改为JPA 2.0。

答案 5 :(得分:0)

你可以发布课程代码吗?很可能你有一个名称属性,并为其分配了空字符串。完全删除它,只留下注释标签@Entity。