如何在Spring数据jpa的JpaRepository中使用泛型

时间:2018-06-11 09:07:55

标签: java spring-data-jpa

//generic repo
public interface MyGenericRepo extends JpaRepository<GenericEntity,Integer> { }

//entity
class Place extends GenericEntity {
    private Event event;
}

//entity
class Event extends GenericEntity{  }

//entity
class Offer extends GenericEntity
{
    private Place place;
}

//entity
class User extends GenericEntity {
    private Place place;
}

我应该在GenericEntity中采取什么,以及如何创建一个ModelManager来保存和加载实体

1 个答案:

答案 0 :(得分:2)

如果您不想使用Integer作为密钥创建自己的存储库界面。你必须得到:

@NoRepositoryBean
public interface MyGenericRepo<T> extends JpaRepository<T, Integer> {
}
需要

注释@NoRepositoryBean以避免创建Repository实现。您可以在https://stackoverflow.com/a/11585811/3058413上阅读更多内容。

在它之后你应该为每个实体改变界面:

public interface PlaceRepository extends MyGenericRepo<Place> {

}

Spring数据会自动创建此repostory的实现。