2015-05-05 104 views
2
  • 嗨,是否有可能如何获得数据库表,列名和列 值等?

我曾尝试示例代码段代码,请让我知道如何让数据库列名和值?如何从数据库使用休眠模板获取数据

public List<String> getAllTables(){ 
    Map<String, ClassMetadata> classMetaDataMap = 
    hibernateTemplate.getSessionFactory().getAllClassMetadata(); 
    for(Map.Entry<String, ClassMetadata> metaDataMap : classMetaDataMap.entrySet()) { 
     ClassMetadata classMetadata = metaDataMap.getValue(); 
     AbstractEntityPersister abstractEntityPersister = (AbstractEntityPersister) classMetadata; 
     String tableName = abstractEntityPersister.getTableName(); 
    } 
} 
+0

'ClassMetadata classMetadata = sessionFactory.getClassMetadata(AppTaskConfig.class); String [] propertyNames = classMetadata.getPropertyNames();'使用这些代码获取列名称 –

+0

显示pojo类变量的属性名称?我需要显示数据库列名称或pojo类注释列名称? – sameer

+0

@sameer'String [] columnNames = abstractEntityPersister.getKeyColumnNames();' –

回答

1

在Hibernate中,为了获得列名使用以下命令:

ClassMetadata classMetadata = sessionFactory.getClassMetadata(Person.class); 
String[] propertyNames = classMetadata.getPropertyNames(); 

而对于越来越列的值,你可以使用Hibernate的标准。

Criteria criteria = session.createCriteria(Person.class); 
List list = criteria.list(); 
+0

我正在使用hibernate模板,我怎样才能让它进行session.sorry的询问.' private HibernateTemplate hibernateTemplate; \t @Autowired \t公共无效的setSessionFactory(会话工厂的sessionFactory){ \t \t \t的HibernateTemplate =新的HibernateTemplate(SessionFactory的); \t}' – sameer

+0

没问题。您可以从这些教程中查看有关休眠的所有信息。 1.https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/tutorial.html 2.http://www.tutorialspoint.com/hibernate/ –

+0

我还有一个单独的约束列名称作为数据库的列名和Pojo类声明变量?是否有可能使所有单列表?示例约束列名称:'String Id = abstractEntityPersister.getIdentifierPropertyName(); \t \t \t的String []列= abstractEntityPersister.getPropertyColumnNames(ID);字符串[] propertyNames = classMetadata.getPropertyNames();' – sameer