Программисты JAVA общаются здесь
Anonymous
Как получить данные из нескольких таблиц при весенней загрузке, используя сопоставление в репозитории JPA Spring Boot
Сообщение
Anonymous » 26 янв 2025, 14:01
Я создал четыре класса сущностей:
Код: Выделить всё
@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;
}
< /code>
и таблицы схемы для соответствующих сущностей следующие: < /p>
DashboardRegionCountry: < /p>
+----------------+---------------+
| 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) |
+-------------+---------------+
< /code>
В основном, когда пользователь входит в DashboderId, мы хотим получить, DashboardDetails вместе с регионом и соответствующими странами в этом регионе. Как указано выше, у меня есть только идентификаторы региона и страны в моей таблице, и их имена присутствуют в других таблицах.
Я хочу отобразить свой образцы вывода что -то вроде: < /p>
{
"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
1737889315
Anonymous
Я создал четыре класса сущностей: [code]@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; } < /code> и таблицы схемы для соответствующих сущностей следующие: < /p> DashboardRegionCountry: < /p> +----------------+---------------+ | 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) | +-------------+---------------+ < /code> В основном, когда пользователь входит в DashboderId, мы хотим получить, DashboardDetails вместе с регионом и соответствующими странами в этом регионе. Как указано выше, у меня есть только идентификаторы региона и страны в моей таблице, и их имена присутствуют в других таблицах. Я хочу отобразить свой образцы вывода что -то вроде: < /p> { "dashboardId":20, "DashboardRegionCountry": [{ "Region":"ASIA", "dashboardId":["India","China"] }, { "Region":"NAM", "dashboardId":["USA","Canada"] } ] } [/code] Я пытаюсь написать репозиторий JPA, но мне интересно, можно ли написать что-то вроде: [code]@Repository public interface DashboardRegionCountryRepository extends JpaRepository{ List findRegionBy_RegionId(Long dashboardId); } [/code] Я пытаюсь получить все данные в одном запросе, любое предложение будет действительно полезно Подробнее здесь: [url]https://stackoverflow.com/questions/70202684/how-to-fetch-data-from-multiple-tables-in-spring-boot-using-mapping-in-spring-bo[/url]