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告诉我它无法“根据路径解析属性”。请更新您的问题并发布您收到的消息/堆栈跟踪(包括更新的代码)。