@goozzy
student of java dev

Как лучше хранить данные в MySQL для проекта Java?

Столкнулся с проблемой и не знаю, как будет устроить хранение данных правильно. Имею АПИ сервис для отправки емейлов с телом в виде html. Краткий принцип работы: происходит добавления емейла в очередь в БД, через некоторое время специальный сервис отправляет это сообщение.
Для того, чтобы сообщение отправилось заполненное разными уникальными данными (например, имя пользователя) необходимо хранить эту переменную с нужным значением. Но т.к. могут быть разные шаблоны html, то невозможно хранить данные для заполнения в одном конкретном классе.

Была идея создать столбец content в таблице очереди и там хранить все что мне нужно в формате json, но может быть вы подскажете идею лучше.

Пример запроса на контроллер:
{
"emailTo": "222@gmail.com",
"emailFrom": "111@gmail.com",
"htmlTemplate": "welcome",
"subject": "welcome",
}
"content": {
"nickname": "abc",
"age": 99
}
}
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день.
Как вариант вы можете хранить данные в виде json. Есть либа для hibernate - hibernate types

Но т.к. могут быть разные шаблоны html, то невозможно хранить данные для заполнения в одном конкретном классе.

Так не храните в конкретном классе. Создайте 1 общий родительский класс с общими полями. А также необходимые дочерние классы (по 1 на каждый шаблон).
А далее используйте https://www.baeldung.com/hibernate-inheritance

Краткий принцип работы: происходит добавления емейла в очередь в БД, через некоторое время специальный сервис отправляет это сообщение.

Я так понимаю, что это некий amqp сервис (rabbitmq, kafka и др), который слушает event и пр наличии отправляет майл?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы