提交 aa84c38c authored 作者: 1239068511@qq.com's avatar 1239068511@qq.com

[数据模型] 新增了 SessionUtil 中 删除 根据表名删除metadataSources 中的表 的方法

deleteTableInMeteData
上级 ac59607e
...@@ -7,6 +7,9 @@ import org.hibernate.Session; ...@@ -7,6 +7,9 @@ import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata; import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources; import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmHibernateMapping;
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmRootEntityType;
import org.hibernate.boot.jaxb.spi.Binding;
import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.tool.hbm2ddl.SchemaUpdate; import org.hibernate.tool.hbm2ddl.SchemaUpdate;
import org.hibernate.tool.schema.TargetType; import org.hibernate.tool.schema.TargetType;
...@@ -76,5 +79,31 @@ public class SessionUtil { ...@@ -76,5 +79,31 @@ public class SessionUtil {
public Metadata getMetadata(){ public Metadata getMetadata(){
return metadataSources.buildMetadata(); return metadataSources.buildMetadata();
} }
public MetadataSources getMetadataSources() {
return metadataSources;
}
public void deleteTableInMeteData(String tableName){
Integer needDelete = -1;
List<Binding> xmlBindings = metadataSources.getXmlBindings();
for (int i = 0; i < xmlBindings.size(); i++) {
Object root = xmlBindings.get(i).getRoot();
if (root instanceof JaxbHbmHibernateMapping){
List<JaxbHbmRootEntityType> listEntity = ((JaxbHbmHibernateMapping) root).getClazz();
for (JaxbHbmRootEntityType jaxbHbmRootEntityType : listEntity) {
String currentTableName = jaxbHbmRootEntityType.getTable();
if (currentTableName.equals(tableName)){
needDelete = i;
break;
}
}
}
}
if (needDelete>-1){
xmlBindings.remove(needDelete);
}
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论