首页 > 解决方案 > 使用 JPA 存储库获取标识符列和另一列

问题描述

我对 Spring 很陌生,并试图编写一个从 db 表中返回代码和名称列的查询。

我的实体如下所示:

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "warehouses")
public class Warehouses implements Serializable {

    @Id
    @Column(name = "code")
    private String code;

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

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

    @Column(name = "openingDate")
    private String openingDate;
}

我的存储库如下所示:

@RepositoryRestResource(path = "warehouses", collectionResourceRel = "warehouses")
public interface WarehouseEmailsRepository extends JpaRepository<WarehouseEmails, String> {
    @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_WH_ADMIN')")
    @RestResource(path = "codesAndNames", rel = "codesAndNames")
    @Query("Select w.code, w.name From Warehouses w")
    List<Map> findAllCodesAndNames();
}

我试过了:

1-上面的例子给出的错误是 Couldn't find PersistentEntity for type class org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap!

2-不使用@Query。代码给了我在实体中找不到代码变量的错误。

3-编写查询以返回所有数据。由于 Codes 是标识符,因此它没有出现在响应中。

感谢所有的帮助!

标签: javamysqlspringjpa

解决方案


推荐阅读