Объедините две сущности и получите данные - PullRequest
0 голосов
/ 29 марта 2019

У меня есть два класса сущностей FlcDrawingRequests и FlcDrawingRequestStats. получить данные из двух таблиц. Я пытаюсь получить данные из обеих таблиц, используя приведенный ниже запрос. Невозможно получить данные. Не могли бы вы помочь мне в этом.

 private static final String querystat = "select dr, ds from 
 FlcDrawingRequests AS dr,FlcDrawingRequestStats AS ds where dr.id=ds.request_id";

ниже приведены два класса сущностей

FlcDrawingRequests

@Entity(name = "FlcDrawingRequests")
@Table(name = "drawing_requests", catalog = FlcWsDao.DB_SCHEMA_NAME)
public class FlcDrawingRequests {

    @Id
    private String id;
    @Column(name = "creation_time", nullable = false, updatable = false)
    private Date creation_time;
    @Column(name = "drawing_spec_format", length = 16)
    private String drawing_spec_format;
    @Column(name = "end_time")
    private Date end_time;
}

FlcDrawingRequests

@Entity(name = "FlcDrawingRequestStats")
@Table(name = "drawing_request_stats", catalog = FlcWsDao.DB_SCHEMA_NAME)
public class FlcDrawingRequestStats {
    @Id
    private String request_id;
    @Column(name = "bb", length = 11)
    private Integer bb;
    @Column(name = "car_offset_g", length = 11)
    private Integer car_offset_g;
    @Column(name = "car_sling_type", length = 32)
    private String car_sling_type;
    @Column(name = "car_type", length = 16)
    private String car_type;
    @Column(name = "ch", length = 11)
    private Integer ch;
}

ниже - выполнение запроса:

StringBuilder queryBuilder = new StringBuilder(querystat);
System.out.println("startDate--->" + startDate);
Query query =getEntityManager().createQuery(queryBuilder.toString());
System.out.println("query.list();--->" + query.getResultList().size());
return query.getResultList();

1 Ответ

0 голосов
/ 29 марта 2019
 private static final String querystat = "SELECT dr, ds FROM 
 FlcDrawingRequests dr,FlcDrawingRequestStats ds WHERE dr.id LIKE ds.request_id";

и результат должен быть сохранен в List<Object[2]>, поэтому вы должны иметь:

List<Object[2]> result=query.getResultList();

Итак, у вас есть список таблиц с размером, равным двум, каждый элемент в списке содержитдва объекта: первый - это FlcDrawingRequests, а второй - FlcDrawingRequestStats.

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