【问题标题】:The given name of the entity "ClassName" is empty实体“ClassName”的给定名称为空
【发布时间】:2013-07-16 11:58:47
【问题描述】:

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

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

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

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

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

请问是什么原因造成的,我该如何解决?


更新:

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

【问题讨论】:

  • 更新:嗯,我可以在项目属性中找到一个工具来专门将此错误设置为警告(或忽略!)(项目属性-> JPA->错误/警告->类型“实体名称是空”(列表中的第二个)。如果我这样做,一切正常,但是我仍然想知道是什么导致了错误
  • 您是否将 JBoss Tools 与为 JPA 平台指定的 Hibernate 平台一起使用?
  • 抱歉回复晚了,是的。我认为是 Eclipse 变得混乱了

标签: eclipse jpa


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

            • @Entity @Table(name="properties")
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-11-26
            • 1970-01-01
            • 2017-09-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多