我已经创建了一个 HBM 文件。在代码中,我有一个可用的实际列名(通过属性文件)。我想获取该列的关联属性名称以形成 HQL。 Hibernate 是否提供了一个 API 来获取映射/绑定(bind)到 HBM 文件中的数据库列的属性名称?
最佳答案
有一个半官方的 API 用于访问类的元数据:
Class<?> entityClass = ...;
String columnName = ...;
EntityManager em = ...;
final SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor)
((Session) em.getDelegate()).getSessionFactory();
AbstractEntityPersister persister = (AbstractEntityPersister) sessionFactory.getClassMetadata(entityClass);
for (String propertyName : persister.getPropertyNames()) {
for (String propertyColumnName : persister.getPropertyColumnNames(propertyName)) {
if (columnName.equalsIgnoreCase(propertyColumnName)) {
return propertyName;
}
}
}
关于java - 如何获取绑定(bind)到 HBM 列的属性的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33623626/