DB: oracle 10g;

entityName:com.signaldemand.flank.hibernate.model.实体名

1. 根据实体名获取DB表相对应的表名

Class<?> clazz = CrudServiceHelper.getClassForName(entityName);
AbstractEntityPersister classMetadata = (AbstractEntityPersister)_sessionFactory.getClassMetadata(clazz);
String tableName = classMetadata.getTableName();

2.获取DB中所有的表sequence name

SessionFactory sf = HibernateUtil.getInstance().getSf();
Map mds = sf.getAllClassMetadata();
for (Object entry : mds.entrySet()) {
Entry en = (Entry) entry;
EntityPersister ep = (EntityPersister) en.getValue();
IdentifierGenerator idGen = ep.getIdentifierGenerator();
if (idGen instanceof SequenceGenerator) {
SequenceGenerator seqGen=(SequenceGenerator)idGen;
seqGen.getSequenceName();//这里就得到sequenceName了。
}
}

3. 一次性取出多个序列值(通常用在导入数据时,表如果有多条记录,先查询所要的sequence再进行设置id)

select sequenceName.nextval from (select 1 from all_objects where rownum <= 100)

标注:一个足够大的表,确保满足想获取的序列数量(表的数据量至少要有你想要的序列数量那么多)

all_objects 为系统表

Hibernate 根据实体名称得到DB表名以及表对应的Sequence name的更多相关文章

  1. oracle看到用户的所有表名、表睐、字段名称、现场的目光、是空的、字段类型

    --oracle看到用户的所有表名.表睐.字段名称.现场的目光.是空的.字段类型 select distinct TABLE_COLUMN.*, TABLE_NALLABLE.DATA_TYPE, T ...

  2. 尚硅谷面试第一季-11MyBatis中当实体类中的属性名和表中的字段名不一样怎么办

    问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是 ...

  3. SQL查询数据库信息, 数据库表名, 数据库表信息

    SQL查询数据库信息, 数据库表名, 数据库表信息 ---------------------------------------------- -- 以下例子, 在sql_server 中可以直接运 ...

  4. oracle 中查询当前用户可以看到的表名、表对应的所有字段 原

    转自:https://my.oschina.net/u/3783799/blog/2870207 1.oracle 查询当前用户下的表名,表注释 select t.table_name, f.comm ...

  5. 检索表中所有列的名称、DB中的用户表

    一.检索某个表中所有列的名称 SELECT name FROM syscolumns WHERE ID = OBJECT_ID('Departments') syscolumns (sys.sysco ...

  6. spring hibernate实现动态替换表名(分表)

    1.概述 其实最简单的办法就是使用原生sql,如 session.createSQLQuery("sql"),或者使用jdbcTemplate.但是项目中已经使用了hql的方式查询 ...

  7. 表单验证:$tablePrefix(定义表前缀);$trueTableName = 'yonghu',找到真实表名(yonghu)表;create($attr,0)两个参数;批量验证(返回数组);ajax+动态验证表单

    *$tablePrefix是定义在Model中的,优先级大于配置文件中,如果项目中表前缀全部比如为"a_",并且在配置文件中定义了 'DB_PREFIX'=>'a_' 后期如 ...

  8. SQl查询数据库库名,表名、表的列名

    查询数据库 select * From master.dbo.sysdatabases where name='数据库名' and status<>512   --读取库中的所有表名 (当 ...

  9. 在oracle中查询已知表名的表中所有字段名,每个字段是否是主键,是否是外键,是否为空的sql语句

    查询表的所有列及其属性:select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c ...

随机推荐

  1. unity, readOnly varible

    参考:http://answers.unity3d.com/questions/489942/how-to-make-a-readonly-property-in-inspector.html

  2. MapReduce的输入输出

    mapper和reducer的划分 mapper的数量等于输入文件被划分成的分块数,这取决于输入文件的大小以及文件块的大小.一个map操作只处理一个输入分片.运行作业的客户端通过调用getSplits ...

  3. JUQERY 获取同名称的所有CHECKBOX ,获取已经选择的,并且jquery进行勾选!

    var @(Perfix)_CheckArray=[]; @(Perfix)_CheckArray.length=0; var checkedItems = $('input[name="@ ...

  4. linux 分区重新格式化

    看分区挂载blkidcat /etc/fstab 先看已挂载的分区文件系统df -Th 再看所属用户与组 ll -h 看哪些进程占用分区 ps -ef|grep /backupfuser -m -v ...

  5. 设置ajax 同步执行

    Ajax请求默认的都是异步的如果想同步 async设置为false就可以(默认是true) var html = $.ajax({  url: "some.php",  async ...

  6. xml中的非法字符

    今使用Jdom生成xml文件的时候,总是出现0x0,0x8为非法字符,经过搜索,问题原因及解决方法如下: 原因:xml中需要过滤的字符分为两类,一类是不允许出现在xml中的字符,这些字符不在xml的定 ...

  7. nbu恢复 oracle10g rac asm 到单实例asm(恢复某个表空间)

    一 检验条件 二 准备工作 1 创建相关目录 mkdir -p /oracle/admin/orcl/adumpmkdir -p /oracle/admin/orcl/bdumpmkdir -p /o ...

  8. java 获取classpath下文件多种方式

    java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...

  9. hive 全局排序

    不分发数据,使用单个reducer ; select * from dw.dw_app where dt>='2016-09-01' and dt <='2016-09-18' order ...

  10. 如何用js刷新aspxgridviw

    //写在js中 ASPxGridView1.Refresh();