SpringBoot jpa 通用接口咋写
时间: 2024-02-16 12:34:40 浏览: 31
SpringBoot JPA通用接口的编写步骤如下:
1. 创建一个基础的Repository接口,继承自JpaRepository,并添加一些通用的方法。例如:
```
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.NoRepositoryBean;
import java.io.Serializable;
import java.util.List;
@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {
/**
* 根据ID列表查询
*/
List<T> findByIds(List<ID> ids);
/**
* 根据ID列表删除
*/
void deleteByIds(List<ID> ids);
/**
* 根据条件查询
*/
@Query("select t from #{#entityName} t where t.isDeleted=false and t.id=?1 ")
T findByIdAndNotDeleted(ID id);
/**
* 根据条件查询
*/
@Query("select t from #{#entityName} t where t.isDeleted=false and t.id in ?1 ")
List<T> findByIdsAndNotDeleted(List<ID> ids);
}
```
2. 在需要使用通用接口的Repository中,继承BaseRepository,并添加自定义的方法。例如:
```
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends BaseRepository<User, Long> {
User findByUsername(String username);
}
```
3. 在Service中注入Repository,并调用通用方法或自定义方法。例如:
```
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User findByUsername(String username) {
return userRepository.findByUsername(username);
}
}
```
通过以上步骤,就可以方便地使用JPA进行数据库操作,避免了手写SQL的繁琐和错误。