Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate中的部分模式导出_Java_Hibernate_Mapping_Hbm2ddl_Schemaexport - Fatal编程技术网

Java hibernate中的部分模式导出

Java hibernate中的部分模式导出,java,hibernate,mapping,hbm2ddl,schemaexport,Java,Hibernate,Mapping,Hbm2ddl,Schemaexport,Hibernate版本3.6 我正在尝试使用hbm2dllSchemaExport进行部分架构导出。因此,我访问当前的hibernate配置,检索PersistentClass,应为其生成表,并创建一个新配置,如下所示: ClassMetadata classMetadata = sessionFactory.getClassMetadata(SchemaVersion.class); String entityName = classMetadata.getEntityName(); Pers

Hibernate版本3.6

我正在尝试使用hbm2dll
SchemaExport
进行部分架构导出。因此,我访问当前的hibernate配置,检索
PersistentClass
,应为其生成表,并创建一个新配置,如下所示:

ClassMetadata classMetadata = sessionFactory.getClassMetadata(SchemaVersion.class);
String entityName = classMetadata.getEntityName();
PersistentClass persistentClass = origCfg.getClassMapping(entityName);
final Configuration cfg = new Configuration();
Properties properties = origCfg.getProperties();
cfg.setProperties(properties);
cfg.createMappings().addClass(persistentClass);
cfg.buildMappings();
Iterator<PersistentClass> mappings = cfg.getClassMappings();
System.out.println("=========== MAPPINGS ===================");
while (mappings.hasNext()) {
    PersistentClass pClass = mappings.next();
    System.out.println(pClass.getClassName());
    System.out.println(pClass.getTable().getName());
}
System.out.println("=========== END MAPPINGS ===============");
Session session = sessionFactory.openSession();
session.doWork(new Work() {
    public void execute(Connection connection) throws SQLException {
        new SchemaExport(cfg, connection).create(true, true);
    }
});
session.close();

好的,下面是我为使其工作而添加的内容:

Table origTable = persistentClass.getTable();
String schema = origTable.getSchema();
String catalog = origTable.getCatalog();
String name = origTable.getName();
mappings.addTable(schema, catalog, name, origTable.getSubselect(),
        origTable.isAbstract());
Table table = mappings.getTable(schema, catalog, name);
Iterator<Column> columnIter = origTable.getColumnIterator();
while (columnIter.hasNext()) {
    Column column = columnIter.next();
    table.addColumn(column);
}
Table origTable=persistentClass.getTable();
字符串schema=origTable.getSchema();
字符串catalog=origTable.getCatalog();
字符串名称=origTable.getName();
mappings.addTable(架构、目录、名称、origTable.getSubselect(),
origTable.isAbstract());
Table=mappings.getTable(模式、目录、名称);
迭代器columnIter=origTable.getColumnIterator();
while(columnIter.hasNext()){
Column=columnIter.next();
表.添加列(列);
}
Table origTable = persistentClass.getTable();
String schema = origTable.getSchema();
String catalog = origTable.getCatalog();
String name = origTable.getName();
mappings.addTable(schema, catalog, name, origTable.getSubselect(),
        origTable.isAbstract());
Table table = mappings.getTable(schema, catalog, name);
Iterator<Column> columnIter = origTable.getColumnIterator();
while (columnIter.hasNext()) {
    Column column = columnIter.next();
    table.addColumn(column);
}