[英]inserting data into database table via hibernate mapping fails
I am using Hibernate to insert a row into a database, I am using Visual Paradigm (Enterprise Edition) to generate database tables.我正在使用 Hibernate 向数据库中插入一行,我正在使用 Visual Paradigm(企业版)生成数据库表。
Here are the errors这是错误
org.orm.PersistentException: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.patientmanagement.model.Patient.visitRecord at org.orm.PersistentSession.saveOrUpdate(PersistentSession.java:631) at org.orm.PersistentManager.saveObject(PersistentManager.java:287) at com.patientmanagement.model.PatientDAO.save(PatientDAO.java:303) at com.test.InsertData.main(InsertData.java:28) Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.patientmanagement.model.Patient.visitRecord at org.hibernate.engine.Nullability.checkNullability(Nullability.java:100) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:312) at org.hibernate.event.def.A
org.orm.PersistentException: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.patientmanagement.model.Patient.visitRecord at org.orm.PersistentSession.saveOrUpdate(PersistentSession.java:631) at org. orm.PersistentManager.saveObject(PersistentManager.java:287) at com.patientmanagement.model.PatientDAO.save(PatientDAO.java:303) at com.test.InsertData.main(InsertData.java:28) Caused by: org.hibernate .PropertyValueException: not-null property references a null or transient value: 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.A bstractSaveEventListener.performSave(AbstractSaveEventListener.java:203) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) at 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) at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:687) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:679) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.88
bstractSaveEventListener.performSave(AbstractSaveEventListener.java:203) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) at 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) at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:687) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:679) at org.hibernate.impl.SessionImpl.saveOrUpdate( SessionImpl.88 213246945888:675) at org.orm.PersistentSession.saveOrUpdate(PersistentSession.java:629)... 3 more
213246945888:675) 在 org.orm.PersistentSession.saveOrUpdate(PersistentSession.java:629)... 3 更多
And here is the Insert function to test这是要测试的插入 function
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();
}
}
}
you might have defined the column visitRecord as NOT NULL on your database and now you are trying to insert a null value on that column, or your mapping is not correct, can you show your mapping and your table definition?您可能在数据库中将列 visitRecord 定义为 NOT NULL,现在您正试图在该列上插入一个 null 值,或者您的映射不正确,您可以显示您的映射和表定义吗?
This message means that you cannot create a Patient entity with an empty property.此消息意味着您不能创建具有空属性的 Patient 实体。 The empty property in this case is the visitRecord property within the Patient entity.
本例中的空属性是 Patient 实体中的 visitRecord 属性。 You can assign a value to this property using something like
您可以使用类似的方式为此属性分配一个值
patient.setVisitRecord(some values);
I hope this solves your problem.我希望这能解决你的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.