我正在尝试为从另一个实体继承的实体设置一个 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
}
}
我创建基本存储库:
@NoRepositoryBean
public interface People<T extends Person> extends JpaRepository<T, Long> {
}
最后,我为继承的类创建存储库:
@Repository
public interface Drivers extends People<Driver>, DriverQueries {
}
如果我为一个普通类创建一个存储库,遵循与前一个相同的逻辑,一切都会完美无缺。
有谁知道可能出了什么问题?
谢谢你!
斯蒂芬大帝
相关分类