Это возможно, но это не ясно, почему вы хотите сделать что-то подобное, так что трудно предложить какое-либо конкретное решение.
Но, как правило, да, вы можете генерировать таблицы базы данных, спящие классы и сопоставления динамически на основе некоторого ввода. Самый простой способ - использовать механизм шаблонов. Я использовал Velocity в прошлом, и это было очень хорошо для этой задачи, но есть и другие, если вы хотите попробовать их.
EDIT:
После О.П. разъяснения лучший подход заключается в использовании XML для хранения пользовательских данных, определенных. Вышеприведенное решение является хорошим, но требует повторной компиляции приложения, изменились ли формы. Если вы не хотите останавливаться и перекомпилировать после каждого редактирования пользователем, XML гораздо лучше отвечает.
Чтобы дать вам фору:
@Entity
public class UserDefinedFormData {
@Id
private long id;
@ManyToOne
private FormMetadata formMetadata;
@Lob
private String xmlUserData;
}
Учитывая определение вида было бы тривиально, чтобы сохранить и загрузить данные сохраняются в виде XML.
Добавьте комментарий, если вы хотите получить дополнительные разъяснения.
Hi Gregory, Спасибо за ваше предложение. я определенно проверю скорость. Причиной этого является создание механизма, в котором пользователь может создавать формы, а затем использовать их. Таким образом, при создании форм, если можно создать таблицу и связанный с ней класс, стало бы легко хранить данные при использовании форм. Rima Desai – 2009-07-28 05:59:42
я вижу. Я отредактирую ответ с лучшим подходом для вас. –
Вот упражнение: скажем, я добавил атрибуты «имя», «адрес» и «почтовый код» и сохранил их в XML-лове для нескольких миллионов пользовательских записей или так - как именно я собираюсь получить всех с именем «Грегори», живущим в 10 почтовых кодах и сортировкой результатов по имени? – ChssPly76