I am using hibernate Criteria
class to get all records of table :
Criteria criteria = session.createCriteria(AppTaskConfig.class)
I would like to get column names also as I need to convert result set into JSON format.
To get the column names
, first you need to find the properties
of the entity using org.hibernate.metadata.ClassMetadata
:
ClassMetadata classMetadata = sessionFactory.getClassMetadata(AppTaskConfig.class);
String[] propertyNames = classMetadata.getPropertyNames();
where propertyNames
is an array of Strings representing the property names of AppTaskConfig
.
Now using Hibernate org.hibernate.cfg.Configuration
object you can find the column names of the properties
:
for (String property : propertyNames) {
Configuration configuration = sessionFactoryBean.getConfiguration();
PersistentClass persistentClass = configuration
.getClassMapping(Details.class.getName());
String columnName = ((Column) persistentClass.getProperty(property)
.getColumnIterator().next()).getName();
}
An easier way to get column name with hibernate 5
final AbstractEntityPersister classMetadata = (AbstractEntityPersister) sessionFactory.getClassMetadata(clazz)
final String[] names = classMetadata.getPropertyColumnNames(property)
With hibernate 4, I do just like @Debojit Saikia
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With