代码之家  ›  专栏  ›  技术社区  ›  badperson

Hibernate JPA@Generated annotation编译错误

  •  0
  • badperson  · 技术社区  · 7 年前

    我正在使用eclipse启动一个maven/hibernate项目,我的元模型类有问题。

    我得到了一个红色的x线处理 @Generated 注释:

    import javax.annotation.Generated;
    @Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
    

    我已经复习过了 the documentation 它描述了一个选项 addGeneratedAnnotation :

    If set to true the processor will add the @Generated to the generated Java source file. Adding this annotation using JDK 5 will cause a compilation error. In this case set the flag to false. The default for this option is true
    

    在eclipse中,在哪里设置该选项?在运行配置中?我试过了,只做了一个maven编译,但没有修复它。哪个maven目标将生成新的元模型类。

    我很确定我已经设置好了构建路径和工厂路径。我正在使用Java9。

    我的pom.xml文件包含以下内容

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <version>5.3.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.3.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.3.1.Final</version>
    </dependency>
    

    更新

    我试过跑步 package compile 在maven中,但得到版本错误52.0/53.0。

    has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    

    我可以通过将编译器级别和项目方面java级别设置为1.8来解决这个问题。

    有没有办法在以后的版本中设置这个?

    1 回复  |  直到 7 年前
        1
  •  1
  •   bessam Sahli    7 年前

    如果使用Maven yse,则需要导入hibernate库

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <version>{hibernate.version}</version>
        <scope>provided</scope>
    </dependency>
    

    为格雷德

    org.hibernate:hibernate-core:5.4.1.Final
    

    或者手动将hibernate库添加到项目中

        2
  •  0
  •   Filipe Oliveira    7 年前

    尝试在pom.xml中添加此maven依赖项

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-jpamodelgen</artifactId>
        <version>{hibernate.version}</version>
        <scope>provided</scope>
    </dependency>
    

    之后,删除类的@Generated并执行:

     mvn package
    

    Modelgen将在target/…中生成元模型。。。

    元模型生成的本地应该在类路径中。