我正在嘗試為從另一個實體繼承的實體設置一個 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
提交
取消