Во-первых, я прочитал Hibernate - One table with multiple entities?.Hibernate - одна таблица нескольких объектов
Однако, я хотел бы сопоставить два объекта в одной таблице, но я хотел бы, чтобы оба они были объектами, из которых я могу выбрать. Что я имею в виду:
- Один стол: лицо (идентификатор, имя, датаOfBirth, город, улица, почтовый индекс).
- Два объекта: лицо (id, name, dateOfBirth), адрес (id, city, street, zipcode).
Так что это отношения 1: 1 между объектами, но все же 1 таблица в БД.
Если я использую предлагаемое решение (ключевое слово компонента) в приведенной выше ссылке, я не могу напрямую запросить адрес (я могу получить к нему доступ через объект Person). И я хочу быть в состоянии сделать
session.createCriteria(Adres.class)
Как это сделать?
UPDATE: Я попытался ассоциацию один-к-одному между сущностями, в адрес отображения:
<one-to-one name="Person " class="model_mapowanie_xml.Person "/>
и Person отображения:
<one-to-one name="Address" class="model_mapowanie_xml.Address "/>
Оба класса имеют поля со ссылкой на другую один. Выбор записей отлично подходит для этого. Однако, как я могу добавить в одну транзакцию запись с использованием обоих объектов? (Id генерируется db)
Address ad = new Address();
ad.setProperty("Sydney");
Person p = new Person();
p.setProperty("John");
p.setAddress(ad);
session.save(p);
и только часть человека сохранена, свойство адреса остается пустым.
Использование критериев апите запрос для объекта. –