|
|
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Есть сущность, а в ней вот такое поле: Код: sql 1. 2. То есть у таблицы в БД составной PrimaryKey. SluchPK вот такой: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Если так: Expression myexp = from.get("idSluch").as(someclass); то исключение EJB Transaction Exception! Что писать в from.get() в случае составного ключа таблицы??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 16:46:07 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
sluchPK.idSluch, вероятно. Но вы вместо кода лучше бы внятно вопрос сформулировали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 16:48:39 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Есть таблица, у которой составной Primary Key. Соответственно сущность имеет поле с аннотацией @EmbeddedId. Я использую такой код для получения данных из таблиц Oracle: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Как получить такой Expression: Expression myexp = from.get("Что тут писать???").as(someclass); , если поле составное??? авторsluchPK.idSluch попробую... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 16:55:57 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Niky4000Expression myexp = from.get("Что тут писать???").as(someclass); , если поле составное??? Тут писать свойство вашей сущности Object. Мы же не знаем что у вас там за сущность и какое именно её свойство вы хотите получить. В вашей сущности, вероятно нет свойства idSluch. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:24:08 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Ага! Я дошёл!!! Вот работающий код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Выкладываю - может быть кому-нибудь, когда-нибудь понадобится! Суть в том, что если у нас составной ключ, то надо обратиться к нему через 2 get'а. Таким образом, если у нас вложенность n-уровневая, то и get'ов будет n штук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:28:46 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
К слову. Если вы так же разрабатываете структуру базы, то большой надобности в композитных ключах нет. Просто добавьте ещё один синтетический ключ для PK. Делать PK на базе нескольких FK не очень удобно, особенно для работы через ORM. А целостность базы контролируйте уникальными констрейнтами, вместо компазитных ключей. Хотя во многих статьях по прокетированию БД композитные ключи приветствуются, я особой пользы от них пока не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 17:35:46 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Не, базу не я проектирую, а проектировщик базы. Вот он в нескольких таблицах и нафигачил этих композитных PrimaryKey, а есть таблицы, почти все поля которых, кроме одного, например, PrimaryKey. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 18:12:52 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Niky4000Не, базу не я проектирую, а проектировщик базы. Вот он в нескольких таблицах и нафигачил этих композитных PrimaryKey, а есть таблицы, почти все поля которых, кроме одного, например, PrimaryKey. Побщайтесь с ним. Может договоритесь о том чтобы ещё синтетические ключи добавить. Ведь с композитными ключами можно прийти к дизайну 3-4 колонки на PK. Не очень-то. Или 3 колонки на FK - тоже ещё тот геморрой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 10:08:00 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Побщайтесь с ним. Может договоритесь о том чтобы ещё синтетические ключи добавить. Ведь с композитными ключами можно прийти к дизайну 3-4 колонки на PK. Не очень-то. Или 3 колонки на FK - тоже ещё тот геморрой. О! У меня есть таблица, в которой всего 7 колонок, 6 колонок - Primary Key и 3 - Foreign Key. Есть ещё 1 таблица всего 4 колонки, из них 4 Primary Key и 3 - Foregn Key. И ещё одна: 5 колонок , из них 4 Primary Key и 3 - Foregn Key. Весело... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 09:53:31 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
А у меня вопрос появился. А как я буду делать em.merge(Entity en), если у меня вся строка - это Primary Key? Как EntityManager поймёт какую строку update'ить? Наверное, надо по поводу некоторых таблиц пообщаться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 10:52:12 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Niky4000А у меня вопрос появился. А как я буду делать em.merge(Entity en), если у меня вся строка - это Primary Key? Как EntityManager поймёт какую строку update'ить? Наверное, надо по поводу некоторых таблиц пообщаться... Если у вас вся строка это один PK, то, вероятно, это связывающая таблица для Many-to-Many, т.е. можно замапить вообще без сущности. Либо если сущность существует, то с ней никогда нет выделеной работы. Она обрабатывается каскадами из остальных сущностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 10:55:49 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Niky4000У меня есть таблица, в которой всего 7 колонок, 6 колонок - Primary Key и 3 - Foreign Key. Есть ещё 1 таблица всего 4 колонки, из них 4 Primary Key и 3 - Foregn Key. И ещё одна: 5 колонок , из них 4 Primary Key и 3 - Foregn Key. Весело... Погуглите на эту тему: http://stackoverflow.com/questions/3877325/composite-primary-key-or-single-primary-key Соберите все аргументы и предоставьте дизайнеру вашей базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 10:58:42 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
Если у вас вся строка это один PK, то, вероятно, это связывающая таблица для Many-to-Many, т.е. можно замапить вообще без сущности. Либо если сущность существует, то с ней никогда нет выделеной работы. Она обрабатывается каскадами из остальных сущностей. А, да не, там связь Many-to-One. Это просто таблица, в которой, так уж получилось 3 реальных PK, они же и FK, а 4-ый - это просто значение, которое не должно повторяться 2 раза, ну, его и засунули в PK. Есть ещё похожие случаи. А мне это как-то не очень нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 11:10:49 |
|
||
|
Как правильно написать условие поиска по составному ключу типа @EmbeddedId?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczNiky4000У меня есть таблица, в которой всего 7 колонок, 6 колонок - Primary Key и 3 - Foreign Key. Есть ещё 1 таблица всего 4 колонки, из них 4 Primary Key и 3 - Foregn Key. И ещё одна: 5 колонок , из них 4 Primary Key и 3 - Foregn Key. Весело... Погуглите на эту тему: http://stackoverflow.com/questions/3877325/composite-primary-key-or-single-primary-key Соберите все аргументы и предоставьте дизайнеру вашей базы. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 11:58:49 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=289&tid=2131758]: |
0ms |
get settings: |
13ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
18ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 343ms |
| total: | 491ms |

| 0 / 0 |
