Hi all,
I just began to learn Hibernate. Now I have a problem on update. My update code:
Code:
Query query = null;
for (Schedule schedule : schedules) {
query = session.createQuery(
"update Schedule set startTime = :startTime," +
"endTime = :endTime, lastUpdatedBy =:updatedBy," +
"lastUpdatedOn = :updatedOn where id = :id")
.setTimestamp("startTime", schedule.getStartTime())
.setTimestamp("endTime", schedule.getEndTime())
.setParameter("updatedBy", schedule.getLastUpdatedBy())
.setTimestamp("updatedOn", schedule.getLastUpdatedOn())
.setParameter("id", schedule.getId());
query.executeUpdate();
}
When I run the update code, I always got the following exception, which asked me to set other fields in the Schedule. What I want is just to update partial fields. Should I set all not-null field in the schedule when I update the record. Thank you very much in advance.
Code:
15:06:03,688 INFO [STDOUT] Hibernate: update CORA.SCHEDULE set START_TIME=?, END_TIME=?, LAST_UPDATED_BY=?, LAST_UPDATED_ON=? where ID=?
15:06:03,844 INFO [STDOUT] Hibernate: update CORA.SCHEDULE set START_TIME=?, END_TIME=?, LAST_UPDATED_BY=?, LAST_UPDATED_ON=? where ID=?
15:06:03,860 INFO [STDOUT] Hibernate: select CORA.SQ_SCHEDULE_ID.nextval from dual
15:06:03,875 ERROR [STDERR] org.springframework.dao.DataIntegrityViolationException: not-null property references a null or transient value: com.covance.cora.business.bo.Schedule.studyGroup; nested ex
ception is org.hibernate.PropertyValueException: not-null property references a null or transient value: com.covance.cora.business.bo.Schedule.studyGroup
15:06:03,875 ERROR [STDERR] Caused by:
15:06:03,891 ERROR [STDERR] org.hibernate.PropertyValueException: not-null property references a null or transient value: com.covance.cora.business.bo.Schedule.studyGroup
at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:284)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:180)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)