春季 JPA 投影查找全部
2022-09-01 21:42:58
是否可以对返回投影集合/列表的 JPA 存储库使用“findAll”?例:
@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;
(...)
}
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();
}
使用@Query它的工作原理!但不能使用
List<LoginProjection> findAll();
因为LoginProjection它不扩展T(Login)。
我在想,是否有可能为findAll(如findAllXYZ)提供一个“别名”,它可以像findAll一样。使用过滤器也可以,但我不想使用它们:
List<LoginProjection> findAllByName(String name);
我的主要目标是这样的:
@Repository
public interface LoginRepository extends JpaRepository<Login, Long> {
Login findByName(String name);
List<Login> findAll();
List<LoginProjection> findAllLoginProjection();
}
这很容易,并且具有“零@Query”