java - 具有继承性的 Spring 规范

标签 java jpa spring-data-jpa specifications

如何将类型转换为“Specification”“toPredicate”方法?

例如:

@Entity
public class Empresa{...}

@Entity
public class Cliente extends Empresa{ 
    private Integer cod;
    ...
}
@Entity
public class Vinculo{
    private Empresa emp1;
    private Empresa emp2;
}


public static Specification<Vinculo> serieEq(final Integer cod) {
    return new Specification<Vinculo>() {
    @Override
        public Predicate toPredicate(Root<Vinculo> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
            return cb.equal(root.join("emp2").get("cod"), cod);
    };
}

请注意,“cod”仅出现在 Cliente 中。

非常感谢,

最佳答案

您可以使用 as() API。这将适用于某些 JPA 提供程序。

关于java - 具有继承性的 Spring 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17306047/

相关文章:

java - 从命令行获取java进程的 "user.dir"系统属性

Java 连接到 SqlServer 数据库

spring-mvc - 如何在 Spring 中使用 WAS 标准持久性提供程序

java - 如何在 JSP 中显示数据库中的图像?

java - Spring boot启用注释被忽略

java - Mockito - 0 个预期匹配器,2 个已记录 (InvalidUseOfMatchersException)

java - 使用反射动态调用方法

java - Hibernate异常: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set but works on another machine with no issue

java - JPA/获取实体列表作为引用

java - Spring 数据存储库 StackOverflow