我正在尝试为从另一个实体继承的实体设置一个 Spring Data Jpa 存储库。我正在使用 Spring Boot 2.1.6 和 Spring Data Jpa。我已经研究了这个问题并查看了文档,但我发现的案例虽然相似,但没有一个很好地展示了当我们有实体继承时如何处理类的存储库。这里我有主要课程:@Entity@Inheritance(strategy = InheritanceType.JOINED)public abstract class Person implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; // Getters and setters omitted}这里是继承自 Person 的类:@Entity@PrimaryKeyJoinColumn(name="id")public class Driver extends Person { private String vehicleModel; // Getters and setters omitted}所以我创建了一个过滤器以在存储库中使用:public class DriverFilter { private String vehicleModel; // Getters and setters omitted}在我创建 DriverQueries 接口之后:public interface DriverQueries { public Page<Driver> filter(DriverFilter filter, Pageable pageable);}然后我做了它的实现:public class DriverImpl implements DriverQueries { @Override public Page<Driver> filter(DriverFilter filter, Pageable pageable) { // code omitted }}我创建基本存储库:@NoRepositoryBeanpublic interface People<T extends Person> extends JpaRepository<T, Long> {}最后,我为继承的类创建存储库:@Repositorypublic interface Drivers extends People<Driver>, DriverQueries {}如果我为一个普通类创建一个存储库,遵循与前一个相同的逻辑,一切都会完美无缺。有谁知道可能出了什么问题?谢谢你!
1 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
如果我们通过类比父类 ( DriverQueries ) - DriverQueriesImpl为类DriverImpl分配正确的名称,此错误就会消失。在这种情况下,被继承的类应该被称为父类加上后缀Impl。
Spring对此很严格。
添加回答
举报
0/150
提交
取消