我正在嘗試為從另一個(gè)實(shí)體繼承的實(shí)體設(shè)置一個(gè) Spring Data Jpa 存儲(chǔ)庫。我正在使用 Spring Boot 2.1.6 和 Spring Data Jpa。我已經(jīng)研究了這個(gè)問題并查看了文檔,但我發(fā)現(xiàn)的案例雖然相似,但沒有一個(gè)很好地展示了當(dāng)我們有實(shí)體繼承時(shí)如何處理類的存儲(chǔ)庫。這里我有主要課程:@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}所以我創(chuàng)建了一個(gè)過濾器以在存儲(chǔ)庫中使用:public class DriverFilter { private String vehicleModel; // Getters and setters omitted}在我創(chuàng)建 DriverQueries 接口之后:public interface DriverQueries { public Page<Driver> filter(DriverFilter filter, Pageable pageable);}然后我做了它的實(shí)現(xiàn):public class DriverImpl implements DriverQueries { @Override public Page<Driver> filter(DriverFilter filter, Pageable pageable) { // code omitted }}我創(chuàng)建基本存儲(chǔ)庫:@NoRepositoryBeanpublic interface People<T extends Person> extends JpaRepository<T, Long> {}最后,我為繼承的類創(chuàng)建存儲(chǔ)庫:@Repositorypublic interface Drivers extends People<Driver>, DriverQueries {}如果我為一個(gè)普通類創(chuàng)建一個(gè)存儲(chǔ)庫,遵循與前一個(gè)相同的邏輯,一切都會(huì)完美無缺。有誰知道可能出了什么問題?謝謝你!
1 回答

斯蒂芬大帝
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果我們通過類比父類 ( DriverQueries ) - DriverQueriesImpl為類DriverImpl分配正確的名稱,此錯(cuò)誤就會(huì)消失。在這種情況下,被繼承的類應(yīng)該被稱為父類加上后綴Impl。
Spring對(duì)此很嚴(yán)格。
添加回答
舉報(bào)
0/150
提交
取消