|
|
|
hibernate маппинг
|
|||
|---|---|---|---|
|
#18+
есть таблица в БД. там хранятся проперти типа key - value. вопрос: можно ли замапить это дело в hibernate так чтобы получить одну энтити с map а не пачку энтитей с двумя пропертями соответсвенно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 12:30 |
|
||
|
hibernate маппинг
|
|||
|---|---|---|---|
|
#18+
Тут правильнее сказать не "можно", а "нужно". Именно так и нужно сделать. Используйте для этого <map>. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 13:04 |
|
||
|
hibernate маппинг
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. в результате получается один бин и в map одно значение. где я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 18:01 |
|
||
|
hibernate маппинг
|
|||
|---|---|---|---|
|
#18+
Вы не совсем верно поняли назначение столбца id в таблице property1. Если Вы делаете его автоинкрементным и первичным ключом, то Вам необходимо добавить property_id как в приведенном примере: 1) Схема БД: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Property: +----+ | id | +----+ | 1 | | 2 | +----+ Property1: +----+-------------+--------+--------+ | id | property_id | name | value | +----+-------------+--------+--------+ | 1 | 1 | prop1 | val1 | | 2 | 1 | prop2 | val2 | | 3 | 2 | prop3 | val3 | | 4 | 2 | prop4 | val4 | | 5 | 2 | prop5 | val5 | +----+-------------+--------+--------+ 2) Маппинг: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 3) Тестовый класс: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 4) Результат: {prop1=val1, prop2=val2} {prop3=val3, prop4=val4, prop5=val5} По-моему вполне нормальный и ожидаемый результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 07:28 |
|
||
|
hibernate маппинг
|
|||
|---|---|---|---|
|
#18+
спасибо всё, получилось. ещё вопрос в догонку. хочу замапить ещё одно проперти для PropertyBean, чтобы для каждого бина там было уникальное значение индекса, т.е. короче говоря чтобы можно было однозначно идентифицировать какие проперти хванятся в бине. можно конечно создать ещё одну таблицу в базе и сделать FK, но хотелось бы узнать можно ли такое сделать средствами hibernate и одной таблице. вобщем что-то в таком духе должно получиться: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. и вывод: PropertyBean[0]: property_id = "0", {prop1=val1, prop2=val2} PropertyBean[1]: property_id = "1", {prop3=val3, prop4=val4, prop5=val5} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 16:17 |
|
||
|
hibernate маппинг
|
|||
|---|---|---|---|
|
#18+
Не надо ничего дополнительно мапить и создавать таблицы. То, что Вы написали в маппинге (<property name="property_id" type="String" />), по-моему, не имеет смысла. У вас же есть id объекта!!! Попробуйте такой пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Получится: id=1, map={prop1=val1, prop2=val2} id=2, map={prop3=val3, prop4=val4, prop5=val5} Или Вам что-то другое нужно? Может я не правильно вопрос понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 06:59 |
|
||
|
hibernate маппинг
|
|||
|---|---|---|---|
|
#18+
да, всё верно, но хотелось бы обойтись вообще без вот этой таблицы Код: plaintext 1. 2. 3. 4. и использовать property_id из этой Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2006, 11:27 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33898729&tid=2148494]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 446ms |

| 0 / 0 |
