Как получить данные из нескольких таблиц при весенней загрузке, используя сопоставление в репозитории JPA Spring BootJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как получить данные из нескольких таблиц при весенней загрузке, используя сопоставление в репозитории JPA Spring Boot

Сообщение Anonymous »

Я создал четыре класса сущностей:

Код: Выделить всё

@Entity
@Table(name = "DashboardRegionCountry")
public class DashboardRegionCountry implements Serializable {

@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Column(name = "dashboardId")
private long dashboardId;

@OneToOne(targetEntity = Country.class)
@JoinColumn(name="countryId")
private Country country;

@OneToOne(targetEntity = Region.class)
@JoinColumn(name="regionId")
private Region region;

@ManyToOne()
@JoinColumn(name="dashboardId")
private Dashboard dashboard;
}

@Entity
@Table(name = "Dashboard")
public class Dashboard implements Serializable {

@Id
@Column(name = "dashboardId")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long dashboardId;

@Column(name = "dashboardName")
private long dashboardName;

@OneToMany(mappedBy= dashboard)
private List dashboardRegionCountry;

}

@Entity
@Table(name = "Country")
public class Country implements Serializable {

@Id
@Column(name = "countryId")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long countryId;

@Column(name = "shortName")
private String shortName;

@Column(name = "longName")
private String longName;

}

@Entity
@Table(name = "Region")
public class Region implements Serializable {

@Id
@Column(name = "regionId")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long regionId;

@Column(name = "shortName")
private String shortName;

@Column(name = "longName")
private String longName;
}
И схемы таблиц для соответствующих объектов следующие:
DashboardRegionCountry:

Код: Выделить всё

+----------------+---------------+
| Field          | Type          |
+----------------+---------------+
| id(PK)         | Number(11)    |
| dashboardId(FK)| Number(11)   |
| countryId      | Number(11)    |
| regionId       | Number(11)   |
+-------------+------------------+

Dashboard:

+----------------+---------------+
| Field          | Type          |
+----------------+---------------+
| dashboardId(PK)| Number(11)    |
| dashboardName  | varchar(11)   |
+-------------+------------------+

Country:
+-------------+---------------+
| Field       | Type          |
+-------------+---------------+
| countryId(PK)| Number(11)   |
| shortName   | Varchar2(10)  |
| longName    | Varchar2(10)  |
+-------------+---------------+

Region:
+-------------+---------------+
| Field       | Type          |
+-------------+---------------+
| regionId(PK)| Number(11)    |
| shortName   | Varchar2(10   |
| longName    | Varchar2(10)  |
+-------------+---------------+
По сути, когда пользователь вводит идентификатор информационной панели, мы хотим получить данные информационной панели вместе с регионом и соответствующими странами, присутствующими в этом регионе. Как указано выше, в моей таблице есть только идентификаторы регионов и стран, а их имена присутствуют в других таблицах.
Я хочу отобразить пример вывода примерно так:

Код: Выделить всё

{
"dashboardId":20,
"DashboardRegionCountry": [{
"Region":"ASIA",
"dashboardId":["India","China"]
},
{
"Region":"NAM",
"dashboardId":["USA","Canada"]
}
]
}
Я пытаюсь написать репозиторий JPA, но мне интересно, можно ли написать что-то вроде:

Код: Выделить всё

@Repository
public interface DashboardRegionCountryRepository extends JpaRepository{

List findRegionBy_RegionId(Long dashboardId);
}
Я пытаюсь получить все данные в одном запросе, любое предложение будет очень полезно

Подробнее здесь: https://stackoverflow.com/questions/702 ... -spring-bo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»