问题描述
当然POJO和表是通过.hbm.xm映射文件实现的 那我如何获取到对象对应的表呢? 问题补充:AngelAndAngel 写道
解决方案
public class HibernateConfigurationHelper { private static Configuration hibernateConf = new Configuration(); private static PersistentClass getPersistentClass(Class clazz) { synchronized (HibernateConfigurationHelper.class) { PersistentClass pc = hibernateConf.getClassMapping(clazz.getName()); if (pc == null) { hibernateConf = hibernateConf.addClass(clazz); pc = hibernateConf.getClassMapping(clazz.getName()); } return pc; } } public static String getTableName(Class clazz) { return getPersistentClass(clazz).getTable().getName(); } public static String getPkColumnName(Class clazz) { return getPersistentClass(clazz).getTable().getPrimaryKey() .getColumn(0).getName(); } } 这样可以
解决方案二:
hibernate的底层是用PersistentClass来真正做映射的,你只要把握一点,你想要得到原生态的东西,得到PersistentClass对象就可以了。欢迎采纳 有不懂的站内问我。
解决方案三:
你是要在程序中使用这个表名么?为何不给POJO加个属性
解决方案四:
不是还有hibernate.cfg.xml嘛?从这个配置文件中找到数据库连接,用户名和密码再根据.hbm.xm映射文件中<class name="XxxPO" table="XXX">这个table就是表名