下面列出了org.hibernate.persister.entity.AbstractEntityPersister#getPropertyColumnNames ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static String getColumnNameFromMetaModel(Attribute column) {
String columnName = null;
try {
if (isEclipseLinkOnClasspath()) {
columnName = ((AttributeImpl) column).getMapping().getField().getName();
} else if (isHibernateOnClasspath() && isEntityManagerActive()) {
AbstractEntityPersister entityMetadata = (AbstractEntityPersister) em().getEntityManagerFactory().unwrap(SessionFactory.class).getClassMetadata(column.getJavaMember().getDeclaringClass());
columnName = entityMetadata.getPropertyColumnNames(column.getName())[0];
}
} catch (Exception e) {
LOGGER.error("Could not extract database column name from column {} and type {}", column.getName(), column.getDeclaringType().getJavaType().getName(), e);
}
if (columnName == null) {
columnName = convertCase(column.getName(), config);
}
return columnName;
}
public String getColumn(String model, String field) {
SessionImpl sessionImpl = (SessionImpl) JPA.em().getDelegate();
@SuppressWarnings("deprecation")
AbstractEntityPersister aep =
((AbstractEntityPersister)
sessionImpl.getSession().getSessionFactory().getClassMetadata(model));
String[] columns = aep.getPropertyColumnNames(field);
if (columns != null && columns.length > 0) {
return columns[0];
}
return null;
}
private static String getPropertyColumnName(Class entity, String property, SessionFactory sessionFactory) {
ClassMetadata hibernateMetadata = sessionFactory.getClassMetadata(entity);
AbstractEntityPersister persister = (AbstractEntityPersister) hibernateMetadata;
String[] columnNames = persister.getPropertyColumnNames(property);
return columnNames[0];
}