У меня есть ситуация, когда таблица создается динамически, я не знаю имя таблицы, она создается динамически, поэтому я хочу знать, как я могу создать файл сопоставления (.cfg.xml) динамически, это возможно или не?
Спасибо
Да, это возможно.
Я делаю что-то подобное:
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; }