Для проекта, над которым я работаю, мне нужно сохранить несколько POJO в базе данных. Определения класса POJO иногда бывают сильно вложенными, но они должны сглаживаться, так как вложение является древовидным и не содержит циклов (а базовые элементы в конечном итоге являются примитивами / строками). Предпочтительно, чтобы используемое решение создавало одну таблицу для каждого типа данных, и чтобы таблицы имели одно поле на элемент-примитив в POJO. Подклассы и подобные проблемы не являются проблемами для этого конкретного проекта.
Кто-нибудь знает о существующих решениях, которые могут:
- Автоматически генерировать определение
CREATE TABLE
из определения класса
- Автоматически генерировать запрос для сохранения объекта в базе данных, учитывая экземпляр объекта
- Автоматически генерировать запрос для извлечения объекта из базы данных и возврата его в виде POJO с учетом ключа.
Решения, которые могут сделать это с минимальными изменениями / аннотациями к файлам классов и минимальной внешней конфигурацией, являются предпочтительными.
Пример:
Java-классы
//Class to be persisted
class TypeA {
String guid;
long timestamp;
TypeB data1;
TypeC data2;
}
class TypeB {
int id;
int someData;
}
class TypeC {
int id;
int otherData;
}
Может отображаться на
CREATE TABLE TypeA (
guid CHAR(255),
timestamp BIGINT,
data1_id INT,
data1_someData INT,
data2_id INt,
data2_otherData INT
);
или что-то подобное.