| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Hibernate запросы и маппинг |
| Автор: admin82 17.6.2007, 16:51 | ||||||
| Сижу уже неделю. Задание следующее: Есть три таблицы 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 ничего не пишется, т.е. связь то не работает!!!. И такое непонимание у меня во всем! Уж не говорю о самом задании -- как вывести такую информацию? |