хранилище данных Spring с собственным именованным запросом в unMapped POJO - PullRequest
0 голосов
/ 22 января 2020

У меня есть POJO с именем company, который сопоставлен с таблицей базы данных с именем company. У меня есть собственный запрос только с двумя полями (у компании по старым причинам есть много нетерпеливых сопоставлений, которые я хотел бы удалить)

система работает с пружинными данными, которые я хотел бы отобразить как собственный запрос и заполнить эти два скаляра только списком компаний. Как мне это сделать с помощью CompanyRepository?

@Entity
@Audited
@Table(name = "company")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
  @NamedNativeQuery(
      name = "getDefaultBuyers",
      query =
          "SELECT c.id as id ,c.name as name"
              + "FROM complex query with non mapped tables "
      resultSetMapping = "getDefaultBuyersMapping")

 @SqlResultSetMapping(
      name = "getDefaultBuyers",
      columns = {@ColumnResult(name = "name"),@ColumnResult(name = "id")})
public class Company {
 @Column(name = "id", nullable = false, length = 32)
 protected String id;
@Column(name = "name", nullable = false)
 protected String name;
//diffrent properties 
}

@Repository
public interface CompanyRepository
    extends JpaRepository<Company, Long>, JpaSpecificationExecutor<Company>{}

EDIT Не думаю, что это элегантно, но этот работает, может кто-нибудь помочь мне сделать это более элегантно

@Repository
public interface CompanyRepository
    extends JpaRepository<Company, Long>, JpaSpecificationExecutor<Company>{
@Query(
      value =
          "SELECT c.id as id ,c.name as name FROM bidder_config b, native_version n, company c WHERE ...",
      nativeQuery = true)
  Object[][] getDefaultBuyers(); ```

1 Ответ

0 голосов
/ 24 января 2020

очевидно, существует проблема в данных весны, которая решается следующим образом:

@Repository
public interface CompanyRepository
    extends JpaRepository<Company, Long>, JpaSpecificationExecutor<Company>{
    @Query(nativeQuery = true)
  List<DefaultBuyerDTO> getDefaultBuyers();
}

см. https://github.com/spring-projects/spring-data-examples/tree/master/jpa/jpa21#support -for-custom-sqlresultsetmapping-with-constructorresult для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...