|
|
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
Ниже встален кусок из доков Хибернейта, который показывает организацию двусторонней связи "один ко многим". Мне непонятно как должны выглядеть Ява-файлы классов Person и Adress, как будет осуществляться работа с объектами этих классов. Буду очень признателен за объяснение/демнонстрацию, или просто за ответ на вопрос, выделенный мною во вставке 7.4.1. one to many / many to one A bidirectional many-to-one association is the most common kind of association. (This is the standard parent/child relationship.) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. create table Address ( addressId bigint not null primary key ) If you use a List (or other indexed collection) you need to set the key column of the foreign key to not null, and let Hibernate manage the association from the collections side to maintain the index of each element (making the other side virtually inverse by setting update="false" and insert="false"): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 14:17 |
|
||
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. Добавил прямой доступ (access="field"). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 15:53 |
|
||
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
Спасибо. сейчас попробую все это реализовать на своем примере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 15:56 |
|
||
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
N/A[src java]public class Address{ ... private Set<Person> people= new HashSet<Person>(); public Set<Person> getPeople(){ return Collections.unmodifiableSet(people); } } public Set<Person> getPeople(){ return Collections.unmodifiableSet(people); } а как же добавлять объекты в коллекцию?.. возможно, public Set<Person> getPeople(){ return people; } ?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:46 |
|
||
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
Добавь метод: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 17:51 |
|
||
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
мм.. хорошо. всеравно непонятно, как все это работает. в таблице Person есть поле "AdressId", однако, добавляя объект Adress adress1 в set people, я никак не меняю ни одну из таблиц. в чем смысл?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 18:05 |
|
||
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
В объектах и OOP подходе. И по классике OOP != ER (table oriented programming) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 18:08 |
|
||
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
Adress ad1 = new Adress(); Person person1 = new Person() Person1.SetAdress(ad1); //теперь в таблице Person для записи person1 уже стоит adressId ad1.addPerson(person1); //ну добавляется объект в коллекцию, а что дальше?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 18:11 |
|
||
|
Hibernate: вопрос..
|
|||
|---|---|---|---|
|
#18+
Все зависит от цели. Например так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 18:16 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2150899]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
9ms |
get forum data: |
4ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 369ms |

| 0 / 0 |
