Я пытаюсь создать панель управления для доморощенного решения, которое собирает статистику производительности серверов приложений. Вот DDL для данных, которые были собраны различными агентами. Для краткости я пропустил несколько столбцов и таблиц, не относящихся к ним.Нужна помощь при сопоставлении спящего режима
create table server (
id integer not null auto_increment,
name varchar(50) not null,
primary key(id)
);
create table metric (
id integer not null auto_increment,
name varchar(50) not null,
primary key (id)
);
create table server_metric (
id integer not null auto_increment,
server_id integer not null,
metric_id integer not null,
constraint foreign key (server_fk) references server(id),
constraint foreign key (metric_fk) references metric(id),
primary key (id)
);
create table value (
id integer not null auto_increment,
server_metric_id integer not null,
value varchar(500) not null,
collect_time timestamp not null,
constraint foreign key (server_metric_fk) references server_metric(id)
primary key (id)
);
Приборная панель должна позволять пользователям просматривать отчеты, основанные на любой колонке (ы) из этих таблиц в рамках критериев. Поэтому я буду генерировать запрос Критерии Гибернации, основанный на выборе пользователя.
Когда я реверс инженерии POJO метрический объект выглядит примерно так:
private long id;
private String name;
private Set serverMetrics = new HashSet(0);
... constructors, getters, setters truncated ...
То, что я хотел бы сделать, это выставить Metric в качестве единственного POJO для отношений этих таблицах выше. Таким образом, вы можете получить имя сервера, значение, метку времени через Metric POJO. Это будет просто генерация запросов Criteria, а набор результатов всегда будет списком объектов Metric.
Я упомянул об этом link - который отлично подходит для взаимно-однозначной взаимосвязи между объектами. Но в моем случае метрика имеет отношение один к многим с server_metric и т. Д. Я не уверен, как мой файл сопоставления для таблицы Metric будет выглядеть так, чтобы достичь того же
Любая помощь будет оценена по достоинству ...
Приветствия!
Не уверен, что это правильно. Согласно книге Java Persistence with Hibernate (стр. 303) существует два способа добавления столбцов для объединения таблиц. Я протестировал с аннотацией @Embedded (второй подход, указанный в книге), и он отлично работает. –