我正在使用Hibernate向数据库中插入一行,我使用Visual Paradigm(Enterprise Edition)来生成数据库表。通过hibernate映射插入数据到数据库表失败
下面是错误
org.orm.PersistentException:org.hibernate.PropertyValueException: 非空属性引用null或瞬时值: com.patientmanagement.model.Patient.visitRecord在 org.orm.PersistentSession.saveOrUpdate(PersistentSession.java:631)在 org.orm.PersistentManager.saveObject(PersistentManager.java:287)在 com.patientmanagement.model.PatientDAO.save(PatientDAO.java:303)在 com.test.InsertData.main(InsertData.java:28)引起者: org.hibernate.Prope rtyValueException:在 org.hibernate.event com.patientmanagement.model.Patient.visitRecord在 org.hibernate.engine.Nullability.checkNullability(Nullability.java:100) :非空属性引用 null或瞬态值.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:312) 在 org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203) 在 org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener .java:129) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener。的java:210) 在 org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) 在 org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117) 在 有机.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) 在 org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:687) 在org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl。 java:679) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:675) at org.orm.PersistentSession.saveOrUpdate(PersistentSession的.java:629) ... 3个
这里是插入函数测试
public class InsertData {
public static void main(String[]args) throws PersistentException
{
PersistentTransaction trans=PatientmanagementPersistentManager.instance().getSession().beginTransaction();
try
{
//create patient instance
Patient patient=PatientDAO.createPatient();
//set patients properties
patient.setName("Markus Rosevelt");
patient.setRegisterDate(new Date());
//save patient
PatientDAO.save(patient);
trans.commit();
}catch(Exception e){
trans.rollback();
}
}
}
请提供映射 – kommradHomer 2012-04-06 09:29:22