Я работаю с MySQL, и есть таблица, в которой есть данные json, относящиеся к идентификаторам в других таблицах, а не промежуточные таблицы
В настоящее время есть 3 таблицы: Клиенты, Активы и Таблица XXX, которые имеют 3 столбца: id, name и myData. Вот пример строки:
1, "Some name",
[
{"customerId": 1, "assets": {"active": [10, 12, 13], "inactive": [15, 16]}}",
{"customerId": 2, "assets": {"active": [40, 42], "inactive": [19]}}"
]
Кстати, я не могу изменить дизайн :(
Вот сущности:
@Table(name = "xxx")
class XXX {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
private String name;
String myData;
}
@Table(name = "assets")
class Asset {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
private String name;
}
@Table(name = "customers")
class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
private String name;
}
Однако я бы хотел, чтобы сущность XXX правильно отобразила сущности и имела данные о клиентах и активах, аналогичные приведенным ниже:
@Table(name = "xxx")
class XXX {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
private String name;
//maybe some awesome annotation here?
List<CustomerAssetsItem> customerAssetsItemsActive;
//maybe some awesome annotation here?
List<CustomerAssetsItem> customerAssetsItemsInactive;
}
где CustomerAssetsItem будет выглядеть так:
class CustomerAssetsItem {
Customer customer;
List<Asset> assets;
}
Возможно ли это с JPA? Или я должен просто создать новый сервис, который анализирует строку json, выполнить все запросы, которые мне нужны, чтобы построить иерархию?
Спасибо!