Repository接口,該接口並沒有提供完成的DML操作,SpringDataJPA中完成的CRUD操作是通過CrudRepository接口來實現的。
CrudRepository接口
CrudRepository接口繼承自Repository接口,所以Repository接口具有的功能CrudRepository接口都具有,同時又擴展了CRUD相關的功能
API方法介紹
CrudRepository接口提供瞭如下的方法:
package org.springframework.data.repository;
import java.util.Optional;
@NoRepositoryBean
public interface CrudRepository<T, ID> extends Repository<T, ID> {
<S extends T> S save(S var1);
<S extends T> Iterable<S> saveAll(Iterable<S> var1);
Optional<T> findById(ID var1);
boolean existsById(ID var1);
Iterable<T> findAll();
Iterable<T> findAllById(Iterable<ID> var1);
long count();
void deleteById(ID var1);
void delete(T var1);
void deleteAll(Iterable<? extends T> var1);
void deleteAll();
}
具體用法
public interface HurPersonBaseRepository extends CrudRepository<HurPersonbase, UUID> {
@Query(value = "select * from Hur_PersonBase where passport=(?1)", nativeQuery = true)
public HurPersonbase findByPassport(String passport);
HurPersonbase findByPassportAndPassword(String username, String password);
Page<HurPersonbase> findAll(Specification<HurPersonbase> spec, Pageable pageable);
}
定義相關表結構對象
框架會生成查詢語句
@Entity
@Table(name = "hur_personbase")
public class HurPersonbase {
@Id
public String personid;
public String passport;
public String password;
public String personname;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPersonid() {
return personid;
}
public void setPersonid(String personid) {
this.personid = personid;
}
public String getPassport() {
return passport;
}
public void setPassport(String passport) {
this.passport = passport;
}
public String getPersonname() {
return personname;
}
public void setPersonname(String personname) {
this.personname = personname;
}