带有特定列的JPQL返回对象数组

时间:2019-01-21 05:21:38

标签: java spring spring-boot spring-data-jpa

我有一个存储库方法,我试图从表中获取特定的列。 当我调用findAllNamesAndID方法时,我得到Object数组作为回报,在这里我希望获得Customwidgets列表。

我不确定以下代码有什么问题。

我可以在查询注释中使用Customwidgets的构造方法,但我想避免这种情况。有任何解决方法。

我有以下域类:-

public class Customwidgets implements Serializable {
    @Id
    private UUID id;

    @NotNull
    @Column(name = "name", nullable = false)
    private String name;

---
---
}

我的存储库类:-

@Repository
public interface CustomwidgetsRepository extends JpaRepository<Customwidgets, UUID>, JpaSpecificationExecutor<Customwidgets> {

    @Query("select o.id, o.name from Customwidgets o")
    List<Customwidgets> findAllNamesAndID();

}

1 个答案:

答案 0 :(得分:0)

您可以创建一个界面来定义您的投影。例如:

public interface CustomWidgetsProjection {

   String getId();

   String getName();

}

然后,您可以返回此创建的接口,而不是CustomWidgets

@Query("select o.id, o.name from Customwidgets o")
List<CustomWidgetsProjection> findAllNamesAndID();