Общий репозиторий для сохранения разных сущностейJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Общий репозиторий для сохранения разных сущностей

Сообщение Anonymous »

В моем приложении Spring Boot у меня есть служба уведомлений. У меня есть 4 или 5 таблиц, где есть пользовательские записи. Когда пользователь просит изменить некоторые данные в любой из этих таблиц, я запускаю уведомление и когда администратор утверждает этот запрос на изменение, это необходимо обновить в соответствующей таблице. Добавлены исходные данные в одном столбце, данные для изменения в другом столбце, имя класса объектов в 3 -м столбце. Первичный ключ объекта в четвертом столбце, статус запроса в 5 -м столбце. < /P>
create table tbl_change_requests
(
id uuid not null
primary key,
change_data jsonb,
decided_at timestamp(6),
original_data jsonb,
request_type varchar(255)
constraint tbl_change_requests_request_type_check
check ((request_type)::text = ANY
((ARRAY ['DATE_CHANGE'::character varying, 'PRIORITY_CHANGE'::character varying, 'ASSIGNEE_CHANGE'::character varying, 'STATUS_CHANGE'::character varying, 'DESCRIPTION_CHANGE'::character varying])::text[])),
requested_at timestamp(6),
status varchar(255)
constraint tbl_change_requests_status_check
check ((status)::text = ANY
((ARRAY ['PENDING'::character varying, 'APPROVED'::character varying, 'REJECTED'::character varying])::text[])),
task_id uuid,
requested_by uuid
constraint fkc0g49uvky2f4jwjv9i5ytdavv
references users,
target_name varchar(255)
);
< /code>
Есть ли способ написать общий репозиторий, чтобы сохранить какую -либо действительную сущность в соответствующую таблицу? (У меня есть имя класса сущности в DB, ​​и я могу найти класс, и я также могу найти таблицу, которую он представляет) < /p>
public Class getEntityClassFromEntityName(String entityName) {
for (EntityType entity : entityManager.getMetamodel().getEntities()) {
if (entityName.equals(entity.getName())) {
return entity.getJavaType();
}
}

return null;
}
< /code>
public String getTableName(Class entityClass) {
if (entityClass == null)
return null;

Metamodel meta = entityManager.getMetamodel();
EntityType entityType = meta.entity(entityClass);

Table t = entityClass.getAnnotation(Table.class);

return (t == null)
? entityType.getName().toUpperCase()
: t.name();
}
```


Подробнее здесь: https://stackoverflow.com/questions/794 ... t-entities
Ответить

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

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

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

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

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