我正在使用 Hibernate 向数据库中插入一行,我正在使用 Visual Paradigm(企业版)生成数据库表。
这是错误
org.orm.PersistentException:org.hibernate.PropertyValueException:非空属性引用空值或瞬态值:org.orm.PersistentSession.saveOrUpdate(PersistentSession.java:631) 处的 com.patientmanagement.model.Patient.visitRecord。 orm.PersistentManager.saveObject(PersistentManager.java:287) at com.patientmanagement.model.PatientDAO.save(PatientDAO.java:303) at com.test.InsertData.main(InsertData.java:28) 原因:org.hibernate .PropertyValueException:非空属性引用空值或瞬态值:com.patientmanagement.model.Patient.visitRecord at org.hibernate.engine.Nullability.checkNullability(Nullability.java:100) at org.hibernate.event.def.AbstractSaveEventListener .performSaveOrReplicate(AbstractSaveEventListener.java:312) 在 org.hibernate.event.def.AbstractSaveEventListener。performSave(AbstractSaveEventListener.java:203) 在 org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129) 在 org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) 在 org.hibernate .event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java :93) 在 org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:679) 在 org.hibernate.impl 的 org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:687)。org.orm.PersistentSession.saveOrUpdate(PersistentSession.java:629) 上的 SessionImpl.saveOrUpdate(SessionImpl.java:675) ... 还有 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();
}
}
}