java - 具有返回对象数组的特定列的 JPQL

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

我有存储库方法,我试图从表中获取特定列。 当我调用 findAllNamesAndID 方法时,我得到对象数组作为返回,其中我期待自定义小部件列表。

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

我可以在查询注释中使用 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();

}

最佳答案

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

public interface CustomWidgetsProjection {

   String getId();

   String getName();

}

然后您可以返回您创建的这个界面,而不是 CustomWidgets:

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

关于java - 具有返回对象数组的特定列的 JPQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54283877/

相关文章:

java - Mac OS X 10.6 Update 10 的 Java 源在哪里?

java - RecyclerView 项目可点击但不可见

java - 基于 Spring-ws @Endpoint/@PayloadRoot 的配置给出 404

java - Struts 1到 Spring 迁移-策略

java - 有没有一种干净的方法可以将泛型类型的类分配给变量?

java - 改造 : response 500, 内部服务器错误

spring - 如何在 Kubernetes 中为 Spring 应用程序提供双向 TLS (mTLS)?

java - Spring Boot + Hibernate JPA 配置以使用 EntityManager

java - 如何向需要查询实体以执行验证的 JPA 实体添加验证

java - 如何从application.yaml文件中获取值?