2010-03-16 8 views
1

имею структуру БД следующим образом:модель ОРМ и DAO в моем конкретном случае

таблицы СТУДЕНТ (скажем, идентификатор, фамилию и т.д.)

таблицы STUDENT_PROPERTIES (скажем, name_of_the_property: полукокса, value_of_the_property: символ , student_id: ФК)

таблица КУРС (номер, имя, statusofcourse_id)

таблица STATUSOFSOMETHING (ID, name_of_status: символ ('активный', 'неактивные', 'приостановлено' и т.д.))

стол STUDENT_COURSE (student_id, course_id, statusofsomething_id)

Давайте попробуем подобрать объекты домена в моей базе данных:

Студент курса и являются основными объектами. У студента есть список курсов, которые он посещает, также у него есть список свойств, то есть все для этого ученика.

Next, Course entitity. Он может содержать список студентов, которые посещают его.

Но на самом деле, вся структура выглядит следующим образом: отправная точка является студентом, с его ПК мы можем посмотреть список его свойств, мы смотрим в STUDENT_COURSE и извлечь как FK хозяйствующего субъекта курса и также статус комбинации, это будет выглядеть как «студент по имени бла-бла, со всеми его свойствами, посещает математику и статус этого является„ACTIVE“.

теперь цитата

1) Каждый Экземпляр DAO отвечает за один объект или объект основного домена. Если объект домена имеет независимый жизненный цикл, он должен иметь свой собственный DAO.

2) DAO несет ответственность за создание, чтение (по первичному ключу), обновлений и удалений - то есть CRUD - на объект домена.

Теперь, первый вопрос: Что такое сущности в моем случае? Студент, курс, Student_Course, Статус = все, кроме StudentProperties? Должен ли я создать отдельный DAO для каждого объекта?

ответ

1

Субъектами вам нужно будет создать, являются:

  • Студент
  • StudentProperties
  • курс
  • CourseStatus (на самом деле не нужно, как вы могли бы использовать пронумерованный поле для гольфа вместо)

StudentCourse не нужно создавать, так как вы можете просто использовать отображение Many-to-Many в Hibernate, и это даст вам хороший набор курсов в вашем объекте Student.

Вот отличный учебник по картированию спящем, что делает почти все, что вам нужно: http://www.vaannila.com/hibernate/hibernate-example/hibernate-mapping-many-to-many-1.html

+0

@James Гудвин Возможно, но это нормально, что есть не только student_id и course_id, но и третье поле, status_id что определяет строку в таблице? Фактически, это поле статуса не относится к Курсу, оно существует полностью независимо. Только его значение в STUDENT_COURSE имеет смысл. – EugeneP

Смежные вопросы