Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Hibernate сохранение информации о классе


Автор: jvoid 4.9.2011, 19:49
Есть разные классы сохраняемые с помощью Hibernate, например классы Individual и Corporate хранят данные о шаблонах документов List <Template>; Шаблоны Template одинаковы для всех объектов класса Individual, как их правильнее хранить, нужно что то типа static List <Template>
Как вы решаете подобные задачи?

Автор: Старовъръ 5.9.2011, 00:04
Это похоже на что-то вроде глобальной конфигурации, возможно следует создать класс типа GlobalConfiguration, у которого есть поле List <Template>. 

Автор: Farmazon 5.9.2011, 06:44
Так и храни шаблоны индивидуалов в отдельной таблице. Типа individual_templates. 

Автор: jvoid 5.9.2011, 10:22
Сейчас я решаю это так, например земельный участок

Код

@Entity
public class LandArea {

    @Id
    private Long Id;
    static private final String nameObject = new String("LandArea");
         public static String getNameObject() {
        return nameObject;
    }



Код

/**
 * Хранит данные общие для всех объектов класса
 *
 */
@Entity
public class AppObject {

    @Id
    private Long Id;
    @Column
    private String nameObject;
    @OneToMany
// набор шаблонов для класса
    private List<Template> templates;



Код

public class AppObjectDAO {
/** возвращает объект AppObject по имени класса
     * @param nameObject
     * @return
     */
public AppObject getByClassName(String nameObject) {
        
...................................................................


Получаем шаблоны для нужного нам класса:
Код

...................................................................
                        // получаем переменные для шаблона
                        HashMap<String, String> datamodel = landArea
                                .getVarForTemplateDrive();
                        // получаем объект с шаблонами для земельного участка
                        AppObject appObject = new AppObjectDAO()
                                .getByClassName("LandArea");
                        List<Template> templates = new ArrayList<Template>();
                        templates = appObject.getTemplates();
                        TemplateDoDOCGuiI TemplateDoDOCGuiI = new TemplatePrintDialog();
                        TemplateDoDOCGuiI.setTemplates(templates, datamodel);


Что то мне кажется я малость перемудрил, как то это проще можно сделать?

Цитата

Так и храни шаблоны индивидуалов в отдельной таблице. Типа individual_templates


Классов десятки и для каждого свой набор шаблонов.

Автор: Farmazon 5.9.2011, 11:35
ввести классификатор(поле или отдельную таблицу) для Template?... В Hibernate это может выглядеть как наследование сущностей...

Автор: jvoid 5.9.2011, 13:14
Что то до меня не совсем доходит.
т.е создать объект Template и унаследовать от него  LandAreaTemplate хранить идентификатор в одном из полей Template? Если так тогда нужно создать десятки дополнительных классов унаследованных от Template.

Автор: Farmazon 6.9.2011, 19:16
в классах это будет выглядеть так, в базе же может быть одна таблица...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)