![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| admin82 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 22.8.2006 Репутация: 1 Всего: 1 |
Сижу уже неделю. Задание следующее:
Есть три таблицы COMPANY, EMPLOYEE, ADDRESS Отношения между таблицами следующие: COMPANY *-* EMPLOYEE EMPLOYEE 1-1 ADDRESS COMPANY 1 - * ADDRESS Вывести в output информацию из базы данных по компаниям + их адреса + количество работников в компаниях. Например: COMPANY_NAME ADRESS1 QUANTITY OF EMPLOYEES ADDRESS2 … Написал такие маппинги:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.ss.entity.Employee" table="Employee"> <id name="idEmployee" column="idEmployee"> <generator class="increment"/> </id> <property name="firstName" column="firstname"/> <property name="lastName" column="lastname"/> <property name="age" column="age"/> <component name="address" class="com.ss.entity.Address"> <property name= "build" /> <property name= "street" /> <property name= "city" /> </component> </class> </hibernate-mapping> Для связи EMPLOYEE 1-1 ADDRESS я использую component, а не one-to-one, т.к. тогда, по-моему, нельзя было бы правильно работать со связью COMPANY 1 - * ADDRESS (ведь тогда ключи формируются зависимыми). Правильно ли это? Меня смущает, что тогда информация типа street, city, build хранится и в таблице Address, и в таблице Employee (для тех адресов, которые соотнесены с работником). А те адреса, которые соотнесены только с компанией, хранятся только в таблице Address. Ну а дальше вообще темно. таблицы я позаполнял из DatabaseManagerSwing просто вводя SQL. А как надо бы правильно сохранять создаваемые объекты из программы,? Код
создает записи в таблицах Address и Company, но в поле idCompany таблице Address ничего не пишется, т.е. связь то не работает!!!. И такое непонимание у меня во всем! Уж не говорю о самом задании -- как вывести такую информацию? |
||||||
|
|||||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
а ты считаешь что она сама туда прописываться должна? по сути ты должен взять ид компании, и при вставке в адреса не зыбыть его туда вставить. селектом в ResaltSet. и совсем не понятно как организована связь COMPANY *-* EMPLOYEE, таких ключей в природе не существует. единственный вариан через третью таблицу. Это сообщение отредактировал(а) DimW - 21.6.2007, 11:42 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |