【问题标题】:Unable to locate static metamodel field无法定位静态元模型字段
【发布时间】:2014-04-04 12:53:42
【问题描述】:

这个错误是什么意思?

 07:48:42,807 ERROR [org.hibernate.jpa.internal.metamodel.MetadataContext] (ServerService Thread Pool -- 25) HHH015011: Unable to locate static metamodel field : com.lm.model.UserId_#id 

这是该字段的定义方式

@Embeddable
public class UserId implements Identifier<UserId> {
    @Column( name = "user_id", columnDefinition = "uuid" )
    protected UUID id;                                                                                                                                                                     

【问题讨论】:

  • 这不是 Hibernate 中用于嵌入式继承的错误吗?

标签: java hibernate jpa


【解决方案1】:

我偶然发现了同样的问题。我不认为这是一个错误。 当您添加/编辑实体模型时会发生此错误,例如在实体类中添加了一个新字段。

要克服此错误,您必须重新生成元模型。 清理您的项目并构建它。

如果使用 Maven 运行 maven clean。 (前提是您的 POM 配置正确,以便它重新生成 JPA 需要的元模型)。

【讨论】:

  • 我们如何重新生成元模型?如果使用 Maven?
  • 你应该在 pom 中有以下依赖 org.hibernatehibernate-jpamodelgen4.3.1.Final版本> 依赖>
  • 然后执行 mvn clean 和 mvn install 命令,这应该会重新生成规范的 Meta 模型
  • 如果我使用 gradle 会怎样?我总是 ./gradlew cleanIdea 和 ./gradlew idea 但这些元模型不会重新生成
  • 如果我得到这些真的有害吗?我只将元模型类的字段用于 JPA 标准构建器,所以我按需添加它们。
【解决方案2】:

这似乎是 Hibernate 本身的错误。这里有描述:https://hibernate.atlassian.net/browse/HHH-8712

【讨论】:

    【解决方案3】:

    尝试将 getter/setter 添加到抽象类的字段中。 这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 2015-01-28
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多