小编use*_*040的帖子

Spring JPA Projection findAll

是否可以使用"findAll"为JPARepository返回一个Collection/List of Projections?例:

@Entity
public class Login {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "native")
    @GenericGenerator(name = "native", strategy = "native")
    private Integer id;

    private String name;

    private String pass;

    (...)
Run Code Online (Sandbox Code Playgroud)

}

public interface LoginProjection {
    public String getName();
}

@Repository
public interface LoginRepository extends JpaRepository<Login, Long> {
    Login findByName(String name);

    @Query(value = "SELECT name FROM login", nativeQuery = true)
    List<LoginProjection> findAllLoginProjection();
}
Run Code Online (Sandbox Code Playgroud)

使用@Query它的工作原理!但是不可能使用

 List<LoginProjection> findAll();
Run Code Online (Sandbox Code Playgroud)

因为LoginProjection它没有扩展T(登录).

我在想是否有可能为findAll提供一个"别名",就像findAllXYZ一样,它与findAll做同样的事情.使用过滤器也可以,但我不想使用它们:

 List<LoginProjection> findAllByName(String name);
Run Code Online (Sandbox Code Playgroud)

我的主要目标是这样的:

@Repository
public interface LoginRepository extends JpaRepository<Login, Long> { …
Run Code Online (Sandbox Code Playgroud)

java spring jpql spring-data-jpa

14
推荐指数
2
解决办法
4449
查看次数

标签 统计

java ×1

jpql ×1

spring ×1

spring-data-jpa ×1