Hibernate JPA @Generated注释编译错误

时间:2019-02-14 13:43:37

标签: java hibernate jpa

我正在使用Eclipse启动Maven /休眠项目,而我的元模型类却遇到了问题。

在处理@Generated注释的行中,我得到一个红色的x:

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编译,但是并没有解决。哪个目标将生成新的元模型类。

我很确定我已经正确设置了构建路径和工厂路径。我正在使用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>

更新

我尝试在Maven中运行packagecompile,但收到版本错误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来解决。

是否可以通过更高版本进行此设置?

2 个答案:

答案 0 :(得分:1)

如果您使用的是Maven,则需要导入休眠库

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

用于gradle

org.hibernate:hibernate-core:5.4.1.Final

或手动将休眠库添加到您的项目中

答案 1 :(得分:0)

尝试在您的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 / ...中生成您的元模型。

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