| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Hibernate help переменная из другой таблицы |
| Автор: nulay 9.4.2010, 19:15 |
| Доброго времени суток Столкнулся с проблемой - хочу в маппинге выстроить класс у которого будут значения из одной таблицы и одно значение из другой ну например класс пользователь и у этого класса есть поле название группы, которое хранится в другой таблице БД , я так понимаю что это делает ассоциация one-to-one или я ошибаюсь - если кто знает как это сделать хелп ми <hibernate-mapping > <class name="User" table="User"> <id name="id" column="id"> <generator class="native"/> </id> <property name="login" column="login"/> <property name="password" column="password"/> <property name="groupName" column="groupName" type="string"/> ???????????????????????????? - вот как это поле из таблицы Group достать???????????????????? </class> </hibernate-mapping> |
| Автор: MaxPayneC 9.4.2010, 20:51 |
| Зависит от структуры базы. Опишите подробнее, как у вас устроено, что куда ссылается. |
| Автор: nulay 9.4.2010, 21:11 |
| На самом деле это упрощенный пример - ну примерно где-то так CREATE TABLE User( id int, login varchar(255), password varchar(255), id_group int ) id_group - forent key на Group.id CREATE TABLE Group( id int, name varchar(255) ) Добавлено через 1 минуту и 52 секунды Можно конечно создать объект Group - и работать с ним - но появилась сам интерес - возможно ли не создавая объект разместить переменную - думаю возможно - но найти как не могу |
| Автор: MaxPayneC 9.4.2010, 21:15 | ||
Нужно прописать ассоциацию OneToOne, объявить сущность для группы, и у юзера вызывать
|
| Автор: nulay 9.4.2010, 23:39 |
| ну вот я об этом и говорю - что если есть класс group - а допустим его нет а есть только User - class User{ private Integer id; private String password; private String login; private String groupName; } и все. как в переменную groupName в мапинге записать значения из таблицы Group.name?????? В этом и вопрос - а через другой объект это понятно элементарно |
| Автор: MisterCleric 12.4.2010, 09:59 | ||||
| Привет. Ну если уж такой интерес, то есть два пути: 1. Создаем в базе VIEW, который объекдиняет поля из разных таблиц. И меппим сущность на эту вьюху. 2. смотрим в сторону http://www.google.com/search?q=hibernate+formula Но такая архитектура в корне не верна. Если уж у тебя таблицы завязаны между собой, то не ленись точно также их завязать и на уровне сущностей. Для того оно ORM и нужно. Потом меньше проблем будет. Первый случай я использую в таких случаях: когда надо отобразить много данных из разных связных сущностей и хочеться одним махом, при чем не всегда эти сущности у меня повязаны. Или всякого рода таблички с сортировкой, фильтрацией и пейдженированием. Тогда я все данные во вьюхе представляю строковыми значениями и связываю все таблицы, данные из которых хочет увидеть клиент. И тогда намного проще навесить на такой запрос все перечисленные рестрикшены. Второй случай использую, если нужно что-то вычислить или наверняка у меня не будет связи между этими не то что сущностями, а даже и таблицами. Например:
Или
|