我试图了解在Spring Boot中使用JPA Repository
。
我能够使用以下DAO执行列表操作
@Repository
public interface CountryManipulationDAO extends CrudRepository<CountryEntity, Long>{
@Query("Select a from CountryEntity a")
public List<CountryEntity> listCountries();
由于CountryEntity
主键为char
。我对在DAO类
Long
感到困惑
由于
答案 0 :(得分:3)
spring-data中的Repository
接口有两个泛型类型参数;要管理的域类以及域类的id类型。
因此第二个类型参数表示主键的类型。
public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {
<S extends T> S save(S entity);
T findOne(ID primaryKey);
Iterable<T> findAll();
Long count();
void delete(T entity);
boolean exists(ID primaryKey);
}
当你调用一个不使用实体id的函数时,不会进行类型匹配,也不会遇到问题。比如在你的情况下。
另一方面,在使用使用findOne(ID)
,exists(ID)
,delete(ID)
和findAll(Iterable<ID>)
等ID的操作时,您会遇到问题。
有关存储库的更多信息,请查看文档here。