Как создать файл отображения динамически в спящем режиме? - PullRequest
0 голосов
/ 28 сентября 2011

У меня есть ситуация, когда таблица создается динамически, я не знаю имя таблицы, она создается динамически, поэтому я хочу знать, как я могу создать файл сопоставления (.cfg.xml) динамически, это возможно или не?

Спасибо

1 Ответ

2 голосов
/ 09 октября 2011

Да, это возможно.

Я делаю что-то подобное:

    String xml = generate(data, dialect);

    Configuration configuration = new Configuration();
    configuration.addXML(xml);


public static String generate(Data pData, Dialect pDialect) {
    StringBuilder sb = new StringBuilder();
    sb.append("<?xml version='1.0' encoding='UTF-8'?>");
    sb.append("<!DOCTYPE hibernate-mapping PUBLIC '-//Hibernate/Hibernate Mapping DTD//EN' "
                    + "'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'>");
    sb.append("<hibernate-mapping>");
    sb.append(String.format("<class name='dummy' table='%s'>", pData.getTable()));

    final IMyColumn primaryKeyColumn = pData.getPrimaryKey().get(0);
    sb.append(addItem(pData, primaryKeyColumn, "id", pDialect));

    for (IMyColumn column : pData.getColumns()) {
        if (!column.equals(primaryKeyColumn)) {
            sb.append(addItem(column, PROPERTY, pDialect));
        }
    }
    sb.append("</class>");
    sb.append("</hibernate-mapping>");
    final String xml = sb.toString();
    //System.out.println(xml);
    return xml;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...