![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Samotnik |
|
||||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Добрый день.
Помогите плиз замапить поля. Есть сущности channels и phones Я их замапил вот так Channel.hbm.xml
Phone.hbm.xml
Теперь нужно замапить третью сущность subscription у которой будет всего 3 поля. Первое это айдишник, а второе и третье поле, это айдишники из phone и channel соответсвенно. 1. subscription_id 2. phone_id 3. channel_id Я начал делать вот так
|
||||||
|
|||||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 5 Всего: 38 |
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| Samotnik |
|
||||||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
это наверное не совсем то.
История такова. Есть в БД 3 таблицы. Phones, Channels, Subscription. Ранее в коде был маппинг только на две первые таблицы. Это : Phone.hbm.xml
И Channel.hbm.xml
А логика была такая : Phone.java :
Channel.java :
т.е. третья таблица не мапилась. Теперь нужно сделать маппинг на эту третью таблицу. И также добавить логику. В этом и вопрос, как сделать маппинг на третью сущность. Я, если честно, не совсем понимаю почему раньше небыло маппинга на эту третью таблицу. Как оно вообще работало. А теперь нужно сделать маппинг, т.е. чтобы было 3 класса логики, а не 2, т.е. на каждую таблицу в БД - свой класс в приложении. Более того, вот в этом примере, тоже почему то 3 таблицы в БД, а маппинг сделан только на две. Вот этот пример очень похож на мою струтктуру. |
||||||||
|
|||||||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
там связь Many-to-Many третья таблица выступает связующим звеном. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 5 Всего: 38 |
Привет. А что тебя пугает. Все выходить хорошо и отлично.
Если мы меппим две сущности между собой, а они связаны через третью таблица, то это ManyToMany. А если желаешь иметь еще и третью сущность, как у тебя subscription, то это ManyToOne и бидирекешн к нему OneToMany. Все ж просто: 1. Phone имеет много subscription, значит OneToMany и коллекция subscription в Phone. 2. Channel имеет много subscription, значит OneToMany и коллекция subscription в Channel. 3. А вот subscription может быть много к одному Phone, значит ManyToOne mappedBy subscription 4. И аналогично по subscription относительно Channel В твоем случае надо смотреть на все твои три сущности как на таблицы. А тебя же не пугает такая ихняя связь в БД, вот и свяжи их точно также как и БД. -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| Samotnik |
|
||||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
MisterCleric, я все равно не понимаю что на что мапить
так ? Channel.java
Phone,java
А что тогда в Subscription.java мапить ? Добавлено через 4 минуты и 24 секунды вот так штоле ?
|
||||||
|
|||||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Samotnik,
Что Вы этим хотите сказать?
-------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
||||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
меня интересует
- какие поля помечать и какими связями в Phone, Channel - каким поля и чем помечать в Subscription - где теперь будут находится коллекции private Set<Channel> channels = new HashSet<Channel>(); private Set<Phone> phones = new HashSet<Phone>(); Немогли бьы вы разъяснить |
|||
|
||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Samotnik,
А где у Вас видно, с чем Вы мапите тьфу, не то хотел сказать - а где видно с каким классом Вы связываете Channel? http://en.wikibooks.org/wiki/Java_Persistence/ManyToOne Это сообщение отредактировал(а) Vasay - 1.9.2010, 12:46 -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Vasay, а по делу есть что сказать ? Я ведь конкретные вопросы задаю.
|
|||
|
||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
Samotnik,
Я тебе намекаю. И ссылку дал с подсказкой. Добавлено через 2 минуты и 25 секунд Вот еще одна - там найдешь про коллекции: http://en.wikibooks.org/wiki/Java_Persistence/OneToMany -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
| Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
Vasay, я ничего не понимаю.
|
|||
|
||||
| Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
вот так ? :
Channel.java
Phone.java
А что в Subscription.java писать ? Добавлено через 11 минут и 59 секунд Я думаю, что это не верно. Поскольку класс Phone ничего не должен знать о Channel и наоборот. Собственно для этого и нужна эта реструктуризация. Чтобы коллекции слить в новый класс Subscribe. |
||||
|
|||||
| Vasay |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 11 Всего: 73 |
нет. Насколько я понимаю, Channel может иметь много Phone ? А Phone много Channel? Так? Если так то у тебя уже связь не OneToMany а ManyToMany. С другой стороны, судя потому что ты описывал в одном из первых постов - тебе нужен класс Subscription. Я не совсем понимаю (хотя и догадываюсь), что ты с ним хочешь делать, потому, давай так - ты сейчас возьмеш какой-нибудь редактор блоксхем и нарисуешь свои классы или таблицы, а потом нарисуешь связи между ними, примерно как здесь: http://upload.wikimedia.org/wikipedia/comm...-ManyToOne2.jpg и запостишь сюда. Я так подозреваю, что ты хочешь чтобы Phone не знал о Channel и наоборот. Но была бы некая Subscription, которая имела бы коллекцию Channel и коллекцию Phone. Тогда у тебя должны быть связи OneToMany между Subscription и Channel, а так же между Subscription и Phone. Хотя это только в том случае, если телефон может иметь только одну Subscription. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |