0

I have situation where table is created dynamically,i don't know the table name it comes dynamically so i want to know that how can i am able to create mapping file(.cfg.xml) dynamically,it is possible or not?

Thanks

1
  • Is the table persistent, or temp? Commented Oct 9, 2011 at 15:08

1 Answer 1

2

Yes, it's possible.

I do something like that:

    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;
}
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.