|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
Всем доброго дня! Есть обычное Hibernate вебприложение , база данных Postgresql 11, 64 битная, с двумя разными схемами (под каждый инстанс приложения своя схема). У меня проблема: Когда я запускаю приложение, оно создает необходимые таблицы и сиквенсы в указанной схеме нормально, приложение работает нормально проблем с данными нет. Но когда запускаю второй инстанс этого же приложения (но с другой схемой), то таблицы создаются, а сиквенсы не создаются и приложение становится нерабочим. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 15:54 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
max aka max, если взять не схему а базу в постгри то нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 17:08 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpmax aka max, если взять не схему а базу в постгри то нормально? что Вы имеете ввиду ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2019, 20:31 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
max aka max, По умолчанию принято базу делать руками а не генерировать. Берете IDE для постгри, открываете. Там видны веточки БД и веточки Shema. Вот две независимых модели сделайте в разных БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 09:59 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpmax aka max, По умолчанию принято базу делать руками а не генерировать. Берете IDE для постгри, открываете. Там видны веточки БД и веточки Shema. Вот две независимых модели сделайте в разных БД. Вы бы еще выложили скрины как создавать запросы CREATE TABLE... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 16:13 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
max aka max, включи детальное логгирование Hibernate как в примере здесь https://www.mkyong.com/hibernate/how-to-configure-log4j-in-hibernate-project/ Вторая схема не создаётся потому-что не срабатывает какой-то condition. Возможно лезет ошибка. Посмотри также видео-лекцию Николай Алименков — Сделаем Hibernate снова быстрым там есть много информации по тонкой настройке логгеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 16:54 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
maytonmax aka max, включи детальное логгирование Hibernate как в примере здесь https://www.mkyong.com/hibernate/how-to-configure-log4j-in-hibernate-project/ Вторая схема не создаётся потому-что не срабатывает какой-то condition. Возможно лезет ошибка. Посмотри также видео-лекцию Николай Алименков — Сделаем Hibernate снова быстрым там есть много информации по тонкой настройке логгеров. Спасибо, покопаюсь, я пока новичок в хибернете ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 17:34 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
maytonВторая схема не создаётся потому-что не срабатывает какой-то condition. Возможно лезет ошибка. логирование включено на максимум (info), схему я создаю сам вручную, а все остальное создается DDL, ошибок не намечаются, в логе первого инстанса присутствуют CREATE SEQUENCE для указанных полей, а при запуске второго инстанса этого нету, хотя это одно и то же приложение. Может в хибернете имеется какое нибудь кэширование при запуске DDL ? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 17:42 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
max aka max, вернее, запоминание истории, что он создав для первой схемы сиквенсы, запоминает и для второго не создает. обе схемы отличаются от public , сиквенс в первой схеме создается правильно (в определении идентификационного поля ссылается именно на сиквенс из своей схемы, и это нормально) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 17:44 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
Там есть логика. Что хибер по умолчанию все сиквенсы берет из специальной прикладной таблички в схеме если не указано иной способ их получения. Сравни внимательно две схемы и ты увидишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 17:46 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
maytonТам есть логика. Что хибер по умолчанию все сиквенсы берет из специальной прикладной таблички в схеме если не указано иной способ их получения. Сравни внимательно две схемы и ты увидишь. Прилагаю лог запуска Apache Tomcat. https://filebin.net/sxfsl5z0bqil331i/catalina.zip?t=wa1mhtji (2.4 метров, сюда несмог приложить, ограничение 1,5 кб) В папке tomcat/webapps имеются 2 приложения (второе копия первого, отличается лишь файл настройки базы данных, company1 и company2) При запуске томката, начиная со строки 34047 - сразу же после запроса alter table company1.team_topic add constraint UK_m37ns7lt7pugbdunnaxmfh99b unique (import_id) - можно увидеть что присутствуют запросы CREATE SEQUENCE для всех нужных полей, берем этот запрос меняв company1 на company2 переходим на строку 392998, как видим тут нет CREATE SEQUENCE для второй схемы. Следовательно и в бд в company1 существуют сиквенсы, а во второй company2 схеме их нет. p.s. если файл лога не качается, могу доставить другим удобным Вам способом. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 18:21 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
Выложи лучше в github. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 19:46 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
maytonВыложи лучше в github. Лог без архива довольно большой (121 метров), не могу выложить на гитхаб http://ipic.su/aC1R6.jpg, если хотите сюда ссылку прикручу на текстовый формат лога https://filebin.net/81icyj0aprtj8apg/catalina.log?t=jfegaml6 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 20:20 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
Дружище. Лично мне твой лог не нужен. Он нужен этому форуму чтобы тебя спасать. И 120 мегабайт тоже не нужно. Постарайся вырезать grep-ом или чем угодно только те сообщения которые относятся к механизмама хибернейт. Это не сложно сделать по имени логгера. Попробуй у тебя получится. Я верю. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 20:43 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
maytonДружище. Лично мне твой лог не нужен. Он нужен этому форуму чтобы тебя спасать. И 120 мегабайт тоже не нужно. Постарайся вырезать grep-ом или чем угодно только те сообщения которые относятся к механизмама хибернейт. Это не сложно сделать по имени логгера. Попробуй у тебя получится. Я верю. Смог оформить вот так Код: plsql 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. 44. 45. 46. 47. 48. 49. 50.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 21:29 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
max aka maxВы бы еще выложили скрины как создавать запросы CREATE TABLE...я тебя первый раз вижу. Раз ты не врубился как создать хибером отдельную базу то подумал что ты джун в субд. Кто тебя знает. Уже бы попробовал и ответил. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 21:44 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
Видишь во 2 инстансе есть ругательство. Код: java 1.
Нету таблички auth_user_seq. Создай ее вручную. Как про..бал - непоянто. Лень разбирать. Просто создай и скрипт пойдет дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 21:51 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
mayton, Ну вроде это и есть его вопрос. Почему сиквенс auth_user_seq не создается. Боюсь что ему базу создавать нужно, а не схему. Это не оракл. Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 21:55 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
Пускай автор поищет в исходниках auth_user_seq. Переименует в auth_user_seq2. Может прокатит. Может одноимённый объект уже существует. Может в целевой БД места нет. Может прав нет. Да много чего может быть. Вот может пригодится https://thoughts-on-java.org/jpa-generate-primary-keys/ ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 22:05 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
Вот вездесущий Баелдунг уже накрапал кучу рукописей на тему сабжа. https://www.baeldung.com/hibernate-identifiers Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 22:20 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
PetroNotC Sharpmax aka maxВы бы еще выложили скрины как создавать запросы CREATE TABLE...я тебя первый раз вижу. Раз ты не врубился как создать хибером отдельную базу то подумал что ты джун в субд. Кто тебя знает. Уже бы попробовал и ответил. maynotВот вездесущий Баелдунг уже накрапал кучу рукописей на тему сабжа. они все создаются через DDL, если в настройках укажу две отдельных баз, то все норм работает, дело в том что просто вторая копия одного и того же приложения с разными схемами не работает, а копий может быть сколько угодно, в каждом инстансе не буду же менять auth_seq_{N}. В постгре вручную создаются одноименные сиквенсы в разных схемах, хибернейт видать не может либо в настройках чего либо не хватает... ладно, всем спасибо, вопрос закрыт до "лучших времен" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 22:43 |
|
Hibernate не создает сиквенсы когда они существуют в другой схеме.
|
|||
---|---|---|---|
#18+
max aka maxпросто вторая копия одного и того же приложения с разными схемами не работает, max aka maxладно, всем спасибо, вопрос закрыт до "лучших времен" да. Нужно осмысленно применять хибер. Он не охватывает все возможности СУБД. У него другие задачи. 1. Коннект идёт к базе а не к схеме. 2. Для изоляции одного веб приложения от другого надо использовать разные базы а не схемы. 3. Схема в постгри аналог namespace aaaa{ ... } ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 22:57 |
|
|
start [/forum/topic.php?fid=59&fpage=26&tid=2121249]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 419ms |
0 / 0 |