DB에서 nhibernate로 일부 데이터를 커밋합니다.DB에서 읽을 때 nhibernate 세션 문제가 발생했습니다.
TimeSlices newTimeSlices = new TimeSlices(timeSliceStartTime, timeSliceEndTime, schedule, newScheduleDay);
tsDao.Save(newTimeSlices);
tsDao.CommitChanges();
는하지만 나는이 데이터
public ScheduleDays GetByDate(DateTime date, Schedules schedule)
{
NHibernateSession.Refresh(schedule);
DateTime tmpDate = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
return NHibernateSession.CreateCriteria(typeof (ScheduleDays))
.Add(Restrictions.Eq(ScheduleDaysProperties.Date.ToString(), tmpDate))
.Add(Restrictions.Eq(ScheduleDaysProperties.Schedule.ToString(), schedule))
.UniqueResult<ScheduleDays>();
}
하지만없는 성공을 읽어보십시오. 나는 DB를보고 거기에 있지만 DB에서 읽을 수 없습니다. 세션을 새로 고치려면 어떻게해야합니까? 저장 한 후에이 새로운 데이터를 읽을 수 있어야합니다. 문제는 아약스 구성 요소를 사용하여 작업 할 때만 발생합니다.
public ScheduleDaysMap()
{
Id(x => x.ScheduleDayId);
Map(x => x.Date)
.Not.Nullable();
Map(x => x.MinutesOrderInterval)
.Not.Nullable();
References(x => x.Schedule)
.Column(TableNames.ScheduleId)
.Not.Nullable()
.LazyLoad();
HasMany(x => x.Orders)
.KeyColumn(TableNames.ScheduleDayId)
.Inverse()
.LazyLoad()
.AsBag();
HasMany(x => x.TimeSlices)
.KeyColumn(TableNames.ScheduleDayId)
.Inverse()
.LazyLoad()
.AsBag();
Version(x => x.Timestamp);
}
timeSliceStartTime, timeSliceEndTime 및 newTimeSlices 형 외경 날짜 시간입니다
일정 DB 객체 유형 (표 스케줄)
newScheduleDay는 DB 객체 타입이다 (표 ScheduleDays)
I는 C# + 유창한 nhibernate를 사용하고 있습니다.
매핑 및 지연로드 또는 asbag에 문제가있을 수 있습니까? 또는 무엇이 잘못 될 수 있습니까?
+1 우수한 디버그 단계. 2 단계와 3 단계가 * 항상 * 유용하므로 SQL을 개발 중에 모든 프로젝트에 기본적으로 로깅 상태로 남겨 두었습니다. – Ragesh
@Ragesh - 와우, 데이터베이스에 바이너리 BLOB를 푸시하는 경우주의하십시오. 실제로 이진 페이로드를 16 진수로 인코딩하고 로그합니다. – fostandy
@fostandy, 좋은 지적입니다. 개인적으로 DB에서 얼룩을 멀리하기 위해 열심히 노력하면서 나는 그 문제에 결코 빠지지 않았습니다. 그리고 물론, 나는 로깅을 개발 중에 만 나타 냈습니다. – Ragesh