|
|
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Собственно как сконфигурировать(аннотировать) поле сущности, чтобы при сохранении (обновлении) объекта, это поле получало значение устанавливаемое триггером для данной операции на таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 14:38 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
@GeneratedValue ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 14:39 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Blazkowicz@GeneratedValue Пробовал: Код: java 1. 2. 3. но возвращается ошибка: Код: plaintext 1. Я так понимаю, что @GeneratedValue = @GeneratedValue(strategy=GenerationType.AUTO) а GenerationType.AUTO - Indicates that the persistence provider should pick an appropriate strategy for the particular database не то что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:03 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Объясните внятно. Ваше свойство это Id? Ошибка возникает потому что у JPA провайдера для Oracle считается что id генерится через Sequence. У вас Id создаётся через триггер? То есть это не просто свойство, а именно id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:20 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Ух-ты. Похоже @GeneratedValue работает ислючительно в паре с @Id. Очередное гениальной решение со стороны JPA. Действительно, зачем может ещё понадобиться GeneratedValue, кроме как для Id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:24 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Проверил, @GeneratedValue не работает для обычных полей, просто игнорирует занчение присвоенное триггером. Я для @Id генерируется исключение указанное мной выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:28 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
а если strategy=GenerationType.TABLE ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:31 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
publexusПроверил, @GeneratedValue не работает для обычных полей, просто игнорирует занчение присвоенное триггером. Я для @Id генерируется исключение указанное мной выше. Так а вам какой из двух нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:32 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Blazkowiczа если strategy=GenerationType.TABLE ? Это не то (там, насколько я понял, создается специальная таблица, обслуживающая нумерацию) BlazkowiczТак а вам какой из двух нужен? Нужны оба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:39 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Я не гуру низкоуровневой комуникации с БД. Но, по-моему всё упирается явно в JDBC Return Generated Keys. Получить можно только сгенерированые ключи. Отсюда, вероятно, и привязка к Id. В остальных случаях, нужно сущность перечитать после вставки явно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:40 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Для Id, похоже, придется привязываться к JPA провайдеру: http://docs.jboss.org/hibernate/core/3.2/api/org/hibernate/id/SelectGenerator.html Для других свойств остаётся только явно перечитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:43 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Можно и не перечитывать отдельным запросом. Специальный insert может вернуть все сгенерированые значения, а не только ключи. Но как только этим воспользоваться из ЖПА - не понятно. Только ковырять провайдера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 15:49 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Возможно. Что ж, как вариант - процедуру persist в DAO переписать как persist+refresh ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 16:25 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
publexusСобственно как сконфигурировать(аннотировать) поле сущности, чтобы при сохранении (обновлении) объекта, это поле получало значение устанавливаемое триггером для данной операции на таблице? как у вас описана таблица та часть где ИД и сам триггер, можете расписат ьподробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 16:28 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
eJackкак у вас описана таблица та часть где ИД и сам триггер, можете расписат ьподробнее? Могу, конечно, привести простейший пример, но сама конкретная реализация триггера и таблицы не имеет значения в данном вопросе. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: java 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 16:44 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
publexuseJackкак у вас описана таблица та часть где ИД и сам триггер, можете расписат ьподробнее? Могу, конечно, привести простейший пример, но сама конкретная реализация триггера и таблицы не имеет значения в данном вопросе. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: java 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. Блин - я в оракле полный NULL :) - в какой момент сработает триггер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:17 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
eJackБлин - я в оракле полный NULL :) - в какой момент сработает триггер? Написано же before insert не нужно быть экспертом в оракле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:30 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
publexus, Я других вариантов не вижу. Простой и не эффективный - перечитать после вставки. Сложный, но эффективный - специальный INSERT запрос, чтобы вернул все сгенерированые значения и расковырять кишки JPA провайдера, чтобы эти значения обновить у сущности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:36 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Тогда правильно должно отработать на @GeneratedValue(strategy= IDENTITY) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:41 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
eJackТогда правильно должно отработать на @GeneratedValue(strategy= IDENTITY) Не факт, что отработает. Там есть заморочки с Oracle и его JDBC драйвером. Завасит от JPA провайдера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:42 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
BlazkowiczeJackТогда правильно должно отработать на @GeneratedValue(strategy= IDENTITY) Не факт, что отработает. Там есть заморочки с Oracle и его JDBC драйвером. Завасит от JPA провайдера. Да не факт, но автору протестировать, думаю, большого труда не составит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:48 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
eJack, Да попробовал я это уже все, еще до того как открыть тему. Если указать @GeneratedValue(strategy=GenerationType.IDENTITY), то: Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 18:03 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
publexuseJack, Да попробовал я это уже все, еще до того как открыть тему. Если указать @GeneratedValue(strategy=GenerationType.IDENTITY), то: Код: sql 1. 2. Это уже интереснее. А SQL лог смотрели? Что за запрос едет? Может это триггер упал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 18:06 |
|
||
|
JPA - получить значение поля сгенерированное триггером при вставке строки
|
|||
|---|---|---|---|
|
#18+
publexus, и stacktrace покажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 18:07 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38542262&tid=2127733]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
157ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 443ms |

| 0 / 0 |
