Моя система должна взаимодействовать с несколькими другими системами и, возможно, в будущем. Веб-приложение имеет внутреннюю модель данных, подходящую для своей цели, однако при отображении этих данных веб-приложение нужно будет импортировать или отображать данные из других систем. Указан пользователем. Я использую EJB3, и проблема заключается в том, как загружать неизвестные таблицы и отображать их содержимое в хорошем форматированном виде?Как бы вы решили это на Java? Любой шаблон проектирования для ссылки на неизвестные данные?
Допустим, у вас есть класс сущностей, как
@Entity
public class myDatas() {
private String field; private Other data;
// getters and setters
}
public interface Other<T> {
public T getOtherData();
T должен быть создан динамически как класс данных, так как я не знаю теперь, как данные выглядит. Как это сделать?
Есть ли совершенно другой способ сделать это? Когда ваш объект должен ссылаться на неизвестную таблицу?
Имеет ли шаблон адаптера для этого?
EDIT: Возможно, я использовал openjpa для обратного преобразования внешней схемы базы данных для создания класса данных или объекта объекта. Однако я не уверен, могу ли я сделать это во время выполнения, не нужно ли распознавать/развертывать сущность компонента AS? Если это сработает, хакерским способом было бы, например, предоставить кнопку для извлечения таблицы и отменить ее привязку к сущности-компоненту, а затем перезагрузить ее в AS. Но, это так уродливо ...
EDIT2: Может ли быть подходящим для чего-то подобного? Я слышал, что это динамический язык.
Да, я это рассмотрел.Однако моя система в конечном итоге будет использовать и другие системные данные, возможно, до нескольких минут, и писать сущности для каждого из них утомительно. Тогда мне придется постоянно обновлять свои сущности в каждой системе, когда они меняют свои таблицы. Это еще более утомительно. Я бы не сохранил их данные, просто прочитал их и представил, я бы сохранил отношение своих таблиц к моим таблицам, например «внешняя таблица x имеет тип cat», а кошка хорошо определена в моей системе. – rapadura
@antonioP, поэтому это очень трудная задача. – hvgotcodes
вы бы предложили более разумный способ сделать это? Возможно, используя динамический язык? – rapadura