我想在我的项目中使用Spring Data JPA存储库。通常我会创建自己的存储库,让我们说
interface ProductRepository extends JPARepository<Product, Long>
但是,我想提供一个更复杂的案例,符合以下条件:
我有一个具有共同定义的基本实体:
@MappedSuperclass public abstract class AbstractBaseEntity { @GeneratedValue(strategy = GenerationType.AUTO) @Id @Column(name = "ID", nullable = false) private Long id; ... }
我有所有其他实体扩展上述实体,例如:
@Entity @Table(name = "bread") public class Bread extends AbstractBaseEntity { @Column String type; ... }
和
@Entity @Table(name = "butter") public class Butter extends AbstractBaseEntity { @Column String weight; ... }
public interface MyBaseRepository<T> extends JpaRepository<T extends AbstractBaseEntity, Long>
然后定义几个常用方法,然后按如下方式使用它:
public interface BreadRepository <Bread, Long> extends MyBaseRepository
或
public interface ButterRepository扩展了MyBaseRepository
问题在于我无法做到这一点。 当我定义MyBaseRepository时,如果我使用:
MyBaseRepository<T extends AbstractBaseEntity> extends JpaRepository<T, Long>
我有一个错误,&#34;实体没有属性类型&#34;当我运行真正的查询。 如果我只使用
扩展JpaRepository
我收到一个错误,即没有映射Object。 如果我尝试
JpaRepository<T extends AbstractBaseEntity , Long>
它只是因意外的绑定错误而失败。
我是否遗漏了任何内容,或者只是不能使用Spring Data JPA?
谢谢!