如何解决Hibernate JPA 2元模型生成器-错误“ x_无法解析为变量”
Eclipse无法识别元模型,并且总是出现错误:“ xy_无法解析为变量。我尝试了所有事情,并花了很多时间来寻找替代方案,但是以某种方式却无法奏效。
我所做的所有事情如下:
- 在pom.xml中添加依赖项
- 设置注释处理(Project> Properties> Java Compiler>注释处理)
- 设置工厂路径(>“注释处理”>“工厂路径”)
- 将生成的classes文件夹添加到类路径中,如所述here
我在定义的文件夹中也看不到生成的类。除此之外,我还正确注释了所有实体和关系。
我做错了什么?
public class ProductSpecs {
public static Specification<Product> getProductsByFilter(String keyword,Integer categoryId,String postalCode) {
return (root,cq,cb) -> {
List<Predicate> predicates = new ArrayList<>();
// join tables product,retailStore and address for correct filtering
Join<Product,RetailStore> store = root.join(Product_.retailStore,JoinType.LEFT);
Join<RetailStore,Address> address = store.join(RetailStore_.address,JoinType.LEFT);
// create comparsion elements using CriteriaBuilder
if (keyword != null) {
Predicate keywordsearch = cb.like(cb.lower(address.get(Product_.name)),"%" + keyword.toLowerCase() + "%");
predicates.add(keywordsearch);
}
if (categoryId != null) {
Predicate categorySearch = cb.equal(address.get(Product_.categoryId),categoryId);
predicates.add(categorySearch);
}
if (postalCode != null) {
Predicate postalCodeSearch = cb.equal(address.get(Address_.postalCode),postalCode);
predicates.add(postalCodeSearch);
}
// add selected predicates to where clause and build query
return cq.where(predicates.toArray(new Predicate[0])).orderBy(cb.desc(root.get("name")))
.getRestriction();
};
}
}
pom.xml:
<dependencies>
<!-- thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- web mvc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- hot swapping,disable cache for template,enable live reload -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- authentication and authorization -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
<!-- database -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>MysqL</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-jpamodelgen -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>5.3.7.Final</version>
<scope>provided</scope>
</dependency>
<!-- lombok project -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<!-- security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Package as an executable jar/war -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
JavaCompiler注释处理设置:
FactoryPath设置:
Java构建路径设置:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。