我正在尝试使用以下代码获取通过hibernate配置生成的所有列名:
ClassMetadata classMetadata = sessionFactory.getClassMetadata(PersistenceClassName.class);
String[] propertyNames = classMetadata.getPropertyNames();
我收到以下异常:
根本原因:
java.lang.NullPointerException
PersistenceClass<init>
例外:
Unable to instantiate Action
我尝试实现ModelDriven
接口,但仍然是相同的例外。
@Override // by implementing model driven interface
public Object getModel() {
// TODO Auto-generated method stub
return ddObj;
}
这是我尝试使用ModelDriven
:
PersistenceClassName PersistenceClassObj= new PersistenceClassName();
List<PersistenceClassName> PersistenceClassList=new ArrayList<PersistenceClassName>();
Object entityName = getModel();
ClassMetadata hibernateMetadata = sessionFactory.getClassMetadata(entityName.getClass());
我无法理解如何解决它。我哪里错了?
答案 0 :(得分:0)
PersistenceClass
的构造函数中抛出异常。如果从中删除导致NullPointerException
的代码,那么Struts将能够通过其对象工厂实例化一个动作类。
如果代码试图在未初始化的变量上调用方法,则会动态抛出异常。
在您的代码中,此变量可以是sessionFactory
。如果Hibernate无法构建会话工厂,则返回null
引用。