【问题标题】:Eclipse: No generator named "system-uuid" is defined in the persistence unitEclipse:在持久性单元中未定义名为“system-uuid”的生成器
【发布时间】:2023-03-06 02:32:01
【问题描述】:

我有一个已启用 maven 的项目导入 Eclipse。在 Eclipse 中,我在以下行的 system-uuid 部分收到错误“没有名为“system-uuid”的生成器在持久性单元中定义”:

@Id @GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(length = 36)
public String getId() {
    return id;
}

项目从命令行正确构建。是什么导致 Eclipse 产生此错误,我该如何解决?

持久化文件看起来像这样..

<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">
    <persistence-unit name="xxxx"/>
</persistence>

【问题讨论】:

    标签: eclipse hibernate persistence.xml


    【解决方案1】:

    您可以在“查询和生成器”下的“首选项”->“Java 持久性”->“JPA”->“错误/警告”下关闭/关闭错误,方法是将错误“生成器未在持久性单元中定义”更改为警告。

    这看起来像是 Eclipse 中 Dali 的 Hibernate Tools 扩展中的一个错误。您可以向 Hibernate Tools 报告此问题,或者这可能已在更新的版本中得到修复。

    【讨论】:

    • 但是如果开发人员把这个错误检查出来,我会停下来考虑我们应该在persistence.xml中做点什么,你不这么认为吗? :S
    • 这个答案似乎很老了。我刚刚下载了Eclipse luna,问题仍然存在。我不敢相信一个错误会存在这么长时间。这真的是大理的bug吗?
    • 这对我有用。但是,我必须同意@IgnacioRubio。这抑制了错误,让我们继续......但是,为什么首先抛出错误?根据我的研究,我没有找到解决方案。
    • 2018,它仍然存在!面向 Web 开发人员的 Eclipse Java EE IDE - 2018-09。我建议对项目特定设置进行更改。在“错误/警告”下单击“配置项目特定设置”选项并更新。
    • 2019 年仍然正常运行,LOL
    【解决方案2】:

    Eclipse Luna:这似乎有效

    Project -> Clean
    

    【讨论】:

      【解决方案3】:

      较新版本的 Eclipse 对 JPA 的支持似乎取决于注解的顺序。在您尝试使用 em 之后,您正在定义生成器。

      这将起作用:

      @Id
      @GenericGenerator(name = "system-uuid", strategy = "uuid")
      @GeneratedValue(generator = "system-uuid")
      @Column(length = 36)
      public String getId() {
          return id;
      }
      

      然而Java中注解的顺序必须没有意义。所以凯伦是对的,这似乎是一个错误。

      【讨论】:

      • 对我也不管用。并且 Project > Clean... (建议如下)在任何一个顺序上都没有帮助。我正在使用 Mars.2 (4.5.2)。
      【解决方案4】:

      在从 github 导入我的项目后,我在 eclipse mars 中使用了我的自定义 id 生成器。

      错误: 持久化单元中没有定义名为“idGenEchantillon”的生成器

      所以我的回答并不是针对主要问题,而是针对与我有相同错误的其他开发人员,可以在此处看到。

      代码:

      @Id
      @GenericGenerator(name = "idGenEchantillon", strategy = "com.labo.model.KeyGenaratorForEchantillon")
      @GeneratedValue(generator ="idGenEchantillon")
      @Column(name = "ID_ECHANTILLON", length = 12)
      private String idEchantillon;
      

      我使用 maven 来管理依赖关系。

      1. 我已经从我的项目中删除了 JPA 方面 => 每次我使用 Maven 更新我的项目时,项目都会再次使用 JPA 方面 => 错误仍然存​​在。
      2. 我已禁用 Maven 的“JPA Configurator”选项:Window >> Preferences >> Maven >> Java EE Integration,然后取消选中“JPA CONFIGURATOR”,之后我使用 Maven 更新了我的项目 => 错误是走了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-19
        • 1970-01-01
        • 2014-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-18
        • 2014-12-10
        相关资源
        最近更新 更多