|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Есть JavaFX Desktop приложение. Возникла необходимость прикрутить бд. Вот что сделал я: Настройка самого Хибера: Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90.
Базовый репозиторий для работы с сущностями. От этого репозитория наследуются репозитрии конкретных сущностей. Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191.
Мне не нравится вот такое: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Мне это нужно писать в каждом методе. + Не получиться сделать вложенные репозитории. Точнее получиться, но плодить сессии во вложенных репозиториях не очень. (Под вложенными я имею в виду поле класса какого-то репозитория) К примеру у меня есть такой код (да, знаю он не самый лучший): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Хибер не дает сохранить StrategyEntity , пока все OneToMany сущности не будут записаны в бд. Как избежать такого говнокода? может у кого есть варианты как изобразить это получше P.S. Спринг тут не использую да и он не особо нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 00:29 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop, Лямбды?! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 08:16 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Мне не нравится вот такое: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Мне это нужно писать в каждом методе. Убрать в утилитный класс статический. Писал хоть один? И открывать сессию в конструкторе окна. С окном и закрывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 08:21 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
mad_nazgul Tsyklop, Лямбды?! :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 08:22 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop, - в десктопе транзакции длинные. По 8 часов или на каждое окно - наследование убери. Нет его - биндинг ВЕЗДЕ - если для биндинга нужен плоский список, то можно и без хибера его взять. Это не веб. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 08:25 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
не проще прикрутить спринг и сделать норм настройки в апликейшн проперти и использовать jpa repo чем городить вот это я же так понимаю ты на кворке сидишь и делаешь различные приложухи-так кто там будет смотреть что у тебя под капотом- делай как быстрей ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 09:03 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
apb12, В десктопе на спринг у виска покрутят ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 09:07 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Убрать в утилитный класс статический. Писал хоть один? И открывать сессию в конструкторе окна. С окном и закрывать. Утильные классы писал, но не понимаю как это применить тут? Типа статический метод, в котором что? идею Вашу не уловил ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:02 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp И открывать сессию в конструкторе окна. С окном и закрывать. Годная идея. Но есть места где обращение к БД идет без окна. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:03 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
apb12 не проще прикрутить спринг и сделать норм настройки в апликейшн проперти и использовать jpa repo чем городить вот это я же так понимаю ты на кворке сидишь и делаешь различные приложухи-так кто там будет смотреть что у тебя под капотом- делай как быстрей Спринг не юзается с десктопами. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:04 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp - в десктопе транзакции длинные. По 8 часов или на каждое окно Тут да. PetroNotC Sharp - наследование убери. Нет его Какие наследование? PetroNotC Sharp - биндинг ВЕЗДЕ - если для биндинга нужен плоский список, то можно и без хибера его взять. Это не веб. Биндинг чего и с чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:05 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop apb12 не проще прикрутить спринг и сделать норм настройки в апликейшн проперти и использовать jpa repo чем городить вот это я же так понимаю ты на кворке сидишь и делаешь различные приложухи-так кто там будет смотреть что у тебя под капотом- делай как быстрей Спринг не юзается с десктопами. а зачем тебе база в десктопе-храни на в файле тогда ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:11 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
В начале 2000х мы разрабатывали классическое десктоп приложение под Sybace Power Builder. И никакого ORM мы не знали и не использовали. И вы не поверите. Это было - прекрасное приложение. Oracle-cursors полностью заменяли коллекции. Просто надо было научится с этим работать. И 128 Мегабайт памяти хватало для десктопного приложения с гридами. Формочками и прочим. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:20 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop PetroNotC Sharp Убрать в утилитный класс статический. Писал хоть один? И открывать сессию в конструкторе окна. С окном и закрывать. Утильные классы писал, но не понимаю как это применить тут? Типа статический метод, в котором что? идею Вашу не уловил Будет меньше строк. Например одна - Утилита.старТранзакции. Тебе это надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:20 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop PetroNotC Sharp И открывать сессию в конструкторе окна. С окном и закрывать. Годная идея. Но есть места где обращение к БД идет без окна. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:20 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Биндинг чего и с чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:21 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Годная идея. Но есть места где обращение к БД идет без окна. После кнопочке старт, которая нахожится в окне, создается новый поток и там происходят действия и там нужна БД,но окна там нет по факту. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:23 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Как избежать такого говнокода? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:26 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Будет меньше строк. Например одна - Утилита.старТранзакции. Тебе это надо? Я вообще хочу что бы старт транзакции, коммит, если все ок, или же роллбэк были в одном месте. В общем как в вебе. Только в вебе прокси, а у меня такой штуки нет. А сейчас мне приходится это писать в каждом методе. + мне нужно делать несколько операций с БД в одной транзакции а не только одну и если в одной будет ошибка - что бы откатились все изменения. Моя модель такого не позволит. Вот и спрашиваю как это сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:26 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop После кнопочке старт, которая нахожится в окне, создается новый поток и там происходят действия и там нужна БД,но окна там нет по факту. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:27 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp поток зачем? Подробнее. Автоматизированый робот. Пишет в бд всю инфу которую нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:27 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp вопрос по архитектуре. Тогда покажи Модель бд. 6 сущностей = 6 таблиц. БД описана как сущности в Java коде. Прям модельки у меня нет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:29 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Я вообще хочу что бы старт транзакции, коммит, если все ок, или же роллбэк были в одном месте. Где в веб такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:30 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Прям модельки у меня нет Что за сущность StrategyEntity? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:31 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
mayton В начале 2000х мы разрабатывали классическое десктоп приложение под Sybace Power Builder. И никакого ORM мы не знали и не использовали. И вы не поверите. Это было - прекрасное приложение. Oracle-cursors полностью заменяли коллекции. Просто надо было научится с этим работать. И 128 Мегабайт памяти хватало для десктопного приложения с гридами. Формочками и прочим. Неправда, специализированные фреймворки тогда тоже были и Sybace Power Builder с ему подобными, как раз представляли собой фреймворки для быстрого создания приложений работающих с БД, современные фреймворки это скорее полуфабрикат, но все хавают, вот в соседней теме про редактируемый грид с выпадающим списком для поля сказали что это оверхэд, в старых фреймворках такое мастером делалось за минуту, а теперь работу которая делается за час джун не может сделать за неделю)) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:31 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp тогда как делать коммит и отмена на кнопку Ok/cancel? Коммит если операции прошли без ошибок. Роллбэк если возник какой-то эксепшн. Тут окна вообще не при чем. PetroNotC Sharp Где в веб такое? Когда приходит запрос на сервак. Создается транзакция @Transaction . В рамках этой транзакции что-то делается. Если во время выполнения возник эксепшн - происходит роллбэк. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:34 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
(пожимая плечами) Назовите мне название фреймворка под Power Builder образца 2001 года? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:34 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Автоматизированый робот. Пишет в бд всю инфу которую нашел. Ясно. Тогда старт транзакции не в окне, а перед записью в бд. В чем вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:34 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp рисуй. Что за сущность StrategyEntity? StrategyEntity - Условие при котором робот берет данные. CriteriaEntity - Условие при котором стратегия считается подходящей ArbEntity и еще 2 сущности с этой связанные - те самые данные которые записывает робот в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:35 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Создается транзакция @Transaction . В рамках этой транзакции что-то делается. Если во время выполнения возник эксепшн - происходит роллбэк. Это декларативное управление транзакциями. Здесь это оверхед. Просто пишем try StartTran Ясно? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:36 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Ясно. Тогда старт транзакции не в окне, а перед записью в бд. В чем вопрос? Как не писать один и тот же код для старта транзакции. И как сделать так что бы в рамках одной транзации делать несколько операций с БД ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:37 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop StrategyEntity - Условие при котором робот берет данные. СтратегияТаблица ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:37 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Как не писать один и тот же код для старта транзакции. Там ты писал аннотацию. Тут ОДНУ СТРОКУ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:38 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop И как сделать так что бы в рамках одной транзации делать несколько операций с БД Первый класс вторая четверть или блоки кода try{ Oper1() Oper2() ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:40 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp не надо в 40 таблиц добавлять СтратегияТаблица Какие 40 таблиц? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:40 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Надо же. Дети вообще не умеют писать код десктоп или просто в jar файле. Или просто в консоли. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:41 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Tsyklop Какие 40 таблиц? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:42 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
iOracleDev старых фреймворках такое мастером делалось за минуту ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:44 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul Tsyklop, Лямбды?! :-) Микросервисы здесь не нужны. А вот функция которая на входе принимает лямбду/лямбды с запросами к БД, чтобы выполнить их в рамках одной транзакции, почему бы и нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:49 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
mad_nazgul Микросервисы здесь не нужны. А вот функция которая на входе принимает лямбду/лямбды с запросами к БД, чтобы выполнить их в рамках одной транзакции, почему бы и нет. Хорошая идея. Мне нравится. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:49 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
mad_nazgul, Вы смешные, ей богу. После beginTran пять методов не в одной транзакции? Ужас. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:55 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
mayton (пожимая плечами) Назовите мне название фреймворка под Power Builder образца 2001 года? Оно само и есть фреймворк ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:55 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
Покажите мне два метода в одной транзакции и в разных. Ужас. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:56 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
iOracleDev Оно само и есть фреймворк ;) )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:58 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Сам видишь, джун верещит что не может сделать редактируемый грид с выбором значения поля из списка)), в давние времена это делалось несколькими нажатиями мышки. В формсах была такая штучка List of Values (LOV) :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 14:10 |
|
Hibernate 5 и Desktop приложение
|
|||
---|---|---|---|
#18+
iOracleDev В формсах была такая штучка List of Values (LOV) :) iOracleDev Сам видишь, джун верещит что не может сделать редактируемый грид с Он не может два insert в одной транзакции сделать) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 14:24 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120978]: |
0ms |
get settings: |
22ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
799ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 931ms |
0 / 0 |