扩展现有的spring jpa存储库功能

时间:2018-04-02 09:17:49

标签: java spring-data-jpa

我使用Spring与mysql db进行通信。 我有一个Entity类和一个扩展CrudRepository的接口。 一切都很好 - 读/写等。

我想'延伸' findAll方法。我想在返回之前操纵来自findAll的接收数据。

用户类:

@Entity
@Table(name = "user")
public class User
{
    private String name;
    private String age;
    private String type;

    getters/setters
}

回购:

@Repository
public interface UserRepo extends CrudRepository<User, Long> {  
    List<User> findAll();
    Map<String, String> afterManipulatedFindAllData();  
}

我希望afterManipulatedFindAllData()可以随意操作findAll数据。

这可能吗?

加入 在审查了@BoristheSpider链接之后:

interface UserRepository {
  Map<String, String> afterManipulatedFindAllData();
}

class UserRepositoryImpl implements UserRepository{

    public Map<String, String> afterManipulatedFindAllData() {
        ////how this method receive the 'findAll' data?//////
    }
}

public interface UserRepo extends CrudRepository<User, Long>, UserRepository  
{   
    List<User> findAll();
    Map<String, String> afterManipulatedFindAllData();  
}

非常感谢, 阿维

1 个答案:

答案 0 :(得分:0)

您始终可以通过为它们指定JPA查询来定义存储库中的新方法:

@Component
public interface UsersRepository extends JpaRepository<User, UUID> {

    public List<User> findByEntityStatus(EntityStatus status);

    @Query("from User user left outer join fetch user.areas where user.code = :code")
    public User findByCode(@Param("code") String code);
}

也许这对你有用吗?