首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate中 查询表名跟字段名

2012-11-04 
hibernate中 查询表名和字段名此文转自:http://blog.csdn.net/delva/archive/2008/04/24/2322386.aspx?? h

hibernate中 查询表名和字段名

此文转自:http://blog.csdn.net/delva/archive/2008/04/24/2322386.aspx

?

? hibernate中 查询表名和字段名 收藏
/**
?* hibernate 实体、属性查询表名、字段名工具类
?*
?*/

?

import java.util.Iterator;

import org.hibernate.cfg.Configuration;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.Table;

?

public class HibernateParter

{

?? private static Configuration hibernateConf;

?

?? private static Configuration getHibernateConf()

?? {
??????? if (hibernateConf == null)

?????? {
?????????? // return new Configuration().configure();
?????????? return new Configuration();
??????? }
??????? ?return hibernateConf;
?? ?}

?

??? private static PersistentClass getPersistentClass(Class clazz)

??? {

??????? ?synchronized (HibernateParter.class)

???????? {
??????????? ? PersistentClass pc = getHibernateConf().getClassMapping( clazz.getName());

???????????? ?if (pc == null) {
???????????? ?hibernateConf = getHibernateConf().addClass(clazz);
???????????? ?pc = getHibernateConf().getClassMapping(clazz.getName());
????????? }
?????????? return pc;
??? }
?}

?

?/**
? * 获取实体对应的表名
? * @param clazz 实体类
? * @return 表名
? */
?public static String getTableName(Class clazz)

{
? return getPersistentClass(clazz).getTable().getName();
?}

?

?/**
? * 获取实体对应表的主键字段名称
? * @param clazz 实体类
? * @return 主键字段名称
? */
?public static String getPkColumnName(Class clazz)

?{
? Table table = getPersistentClass(clazz).getTable();
? return table.getPrimaryKey().getColumn(0).getName();
?}

?

?/**
? * 通过实体类和属性,获取实体类属性对应的表字段名称
? * @param clazz 实体类
? * @param propertyName 属性名称
? * @return 字段名称
? */
?public static String getColumnName(Class clazz, String propertyName)

{
??? ?PersistentClass persistentClass = getPersistentClass(clazz);
???? Property property = persistentClass.getProperty(propertyName);
?????Iterator it = property.getColumnIterator();
???? if (it.hasNext())

???? {??
??????? ?Column column= (Column)it.next();??
???????? return column.getName();
?? ? }
??? ?return null;
?}


}

?


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/delva/archive/2008/04/24/2322386.aspx

?

?

另外有人给出下面的解决方法:

?

    String?adminClassName?=?Admin.getClass().getName(); ??Configuration?configuration?=?new?Configuration(); ??configuration.configure("path...."); ??PersistentClass?adminPersistentClass?=?configuration.getClassMapping(adminClassName); ??Table?adminTable?=?adminPersistentClass.getTable(); ?

热点排行