0

Hibernate を使用してデータベースに行を挿入しています。Visual Paradigm (Enterprise Edition) を使用してデータベース テーブルを生成しています。

ここにエラーがあります

org.orm.PersistentException: org.hibernate.PropertyValueException: 非 null プロパティが null または一時的な値を参照しています: 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) 原因: org.hibernate .PropertyValueException: 非 null プロパティが null または一時的な値を参照しています: com.patientmanagement.model.Patient.visitRecord at org.hibernate.engine.Nullability.checkNullability(Nullability.java:100) at org.hibernate.event.def.AbstractSaveEventListener org.hibernate.event.def.AbstractSaveEventListener の .performSaveOrReplicate(AbstractSaveEventListener.java:312)。org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129) の performSave(AbstractSaveEventListener.java:203) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) の org.hibernate org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117) の .event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java) :93) org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:687) で org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:679) で 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();
        }
    }
}
4

2 に答える 2

1

データベースで列 visitRecord を NOT NULL として定義した可能性がありますが、その列に null 値を挿入しようとしているか、マッピングが正しくありません。マッピングとテーブル定義を表示できますか?

于 2012-04-06T07:51:23.960 に答える
0

このメッセージは、空のプロパティでPatientエンティティを作成できないことを意味します。この場合の空のプロパティは、Patientエンティティ内のvisitRecordプロパティです。次のようなものを使用して、このプロパティに値を割り当てることができます

patient.setVisitRecord(some values);

これで問題が解決することを願っています。

于 2012-04-06T07:46:05.613 に答える