Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring数据:如何使用规范查询子类型_Spring_Jpa_Spring Data_Spring Data Jpa - Fatal编程技术网

Spring数据:如何使用规范查询子类型

Spring数据:如何使用规范查询子类型,spring,jpa,spring-data,spring-data-jpa,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, se

我有三个这样的实体:

@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> 
{
}
我还有这样一个存储库:

@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> 
{
}
@存储库
公共接口ADao扩展了JpaRepository、JpaSpecificationExecutor
{
}
在这个存储库中,我有一个方法

List<A> findAll(Specification<A> s)
列表findAll(规范s)
在JpaSpecificationExecutor中定义

我的问题是: 如何使用仅在B中声明的字段上的规范发出请求

提前感谢,, 杰罗姆

创建一个

@Repository public interface BDao extends ADao<B>{}
@Repository公共接口BDao扩展ADao{}

公共接口ADao扩展了JpaRepository,JpaSpecificationExecutor

然后注入BDao来查询B类型

将您的类型从更改为,并简单地声明一个
规范
,它为类
B
返回一个
谓词
。您的意思是我应该参数化DAO接口吗?如下所示:公共接口DAO扩展了JpaRepository,JpaSpecificationExecutor??是的(尽管我不确定Spring数据JPA将如何运行)。不幸的是,这不起作用。。。Spring告诉我它无法“根据路径解析属性”。请更新您的问题并发布您收到的消息/堆栈跟踪(包括更新的代码)。