Скажем, у меня есть доменные объекты, соответствующие Posts
и Users
. Тем не менее, у меня есть соответствующие таблицы базы данных, содержащие информацию, относящуюся к «сообщениям» и «пользователям».
В настоящее время я правильно настроил отображение в Hibernate, чтобы я мог извлекать информацию из таблицы «posts» и сохранять ее как объект Post
. Однако затем я добавил к своему объекту Posts
домен ссылку на объект User
(чтобы каждый пост мог иметь соответствующий объект User
).
В моей структуре базы данных таблица "posts" имеет столбец user_id
, который является внешним ключом в таблице "users".
Мой вопрос: при запросе к таблице «posts» в моем DAO нужно ли мне присоединяться к таблице «users», а затем каким-то образом преобразовывать возвращаемые пользовательские данные в объект User
? Или я могу просто оставить свой запрос как есть (т. Е. Просто запросить таблицу «posts») и каким-то образом добавить отображение гибернации, чтобы заполнить атрибут User
в таблице Posts
? (Думаю, мне интересно, сможет ли Hibernate автоматически сгенерировать соединение для меня, если я правильно настрою отображение - примеры тоже подойдут!)
Спасибо, и я надеюсь, что я достаточно ясно.
Обновление : Просто для пояснения, вот несколько фрагментов кода:
Мой пост Объект:
public class Posts {
private String title;
...
private User user;
//getters and setters here
}
Столбцы таблицы My Post:
post_id (primary key)
title
...
user_id (foreign key into User table)
Мое сопоставление (без учета атрибута пользователя) в настоящее время выглядит следующим образом:
<class name="com...Post" table="post">
<id name="pId" column="post_id" />
<property name="title" column="title" type="java.lang.String" />
...
<!-- Need to add mapping here to join with user table?? -->
</class>
Таким образом, мой DAO в настоящее время выбирает объект Post без атрибута private User user
(так как я только что добавил это). У меня был вопрос, как мне заполнить этот атрибут в объекте Post (, чтобы в выбранном объекте Post также содержался объект User )?
Извините, если текущие сообщения уже ответили на это ... они просто немного сбивают меня с толку ..