Spring-data:如何使用规范查询子类型

时间:2013-12-03 12:01:27

标签: spring jpa spring-data spring-data-jpa

我有三个这样的人:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "TYPE")
public abstract class A
{
    // fields, getters, setters
}

@Entity
@DiscriminatorValue("B")
public class B extends A
{
    // fields, getters, setters
}

@Entity
@DiscriminatorValue("C")
public class C extends A
{
    // fields, getters, setters
}

我还有一个这样的存储库:

@Repository
public interface ADao extends JpaRepository<A, Long>, JpaSpecificationExecutor<A> 
{
}

在这个存储库中,我有一个方法

List<A> findAll(Specification<A> s)

,在JpaSpecificationExecutor中定义。

我的问题是: 如何使用仅在B?

中声明的字段上的规范发出请求

提前致谢, 杰罗姆

1 个答案:

答案 0 :(得分:0)

创建

@Repository public interface BDao extends ADao<B>{}

public interface ADao extends JpaRepository<T extends A, Long>, JpaSpecificationExecutor<A> 

然后注入BDao来查询B类型