my function code
===============================
public static String getColumnNameByFieldName(Class<?> entityClass,String fieldName) {
String ret = null;
if(entityClass != null) {
try
{
SessionFactory factory = (SessionFactory)SpringUtils.getApplicationContext().getBean("hibernateSessionFactory");
AbstractEntityPersister classMetadata = (AbstractEntityPersister)factory.getClassMetadata(entityClass);
ret = classMetadata.getPropertyColumnNames(fieldName)[0];
}
catch(Exception e)
{
e.printStackTrace();
}
}
return ret;
}
============my entity class==========================
@Entity
@Table(name="s_attach")
public class AttachInfo {
@Id
private String id;
.........
@OneToMany(targetEntity=AttachInfo.class,mappedBy="docInfo")
private List<AttachInfo> attachs = new ArrayList<AttachInfo>();
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
............
==================================================
now, when I execute the function :
system.out.println(getColumnNameByFieldName(DocInfo.class, "id" ));
system.out.println(getColumnNameByFieldName(DocInfo.class, "attachs" ));
-----the console output --------
id
id
------------------------------------
I think the right ret is null when the fieldName = "attachs"
thanks!
|