|
|
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Решил еревести общение с базой на Hibernate. есть класс Код: 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. Код: xml 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. И еще есь такое Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Вылетает ошибка org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister Я уже перетыкал все переменные, но так и немогу понять из-за чего это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 22:46 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Geronemo, все бы хорошо, но тут форум по мускл. Лично я не хибернил больше десятка лет... Поспрашивайте http://www.sql.ru/forum/java Модератор: Тема перенесена из форума "MySQL". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 23:50 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
GeronemoВылетает ошибка org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister Я уже перетыкал все переменные, но так и немогу понять из-за чего это. 1) Хотелось бы увидеть стектрейс. 2) Есть подозрение, что Hibernate не понимает XML-аннотации Попробуйте добавить аннотации @Entity, @Id, @Column и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 07:14 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Обычно такая ошибка бывает, когда меппинг не совпадает с классом. Я, например, вижу, что в меппнге объявлено свойство client i d, а в классе - client I d. Этого достаточно, чтобы не взлетело ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 10:50 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
ivanraОбычно такая ошибка бывает, когда меппинг не совпадает с классом. Я, например, вижу, что в меппнге объявлено свойство client i d, а в классе - client I d. Этого достаточно, чтобы не взлетело Да, Вы правы. Я много таких мелочей поправил, эта была последняя, которую не заметил. Все заработало. Теперь у меня 2 вопроса. 1. Как описать в маппинг файле id int(10) auto_increment, который еще к тому же primary key (id) У меня записано так Код: xml 1. 2. 3. 4. 2. Также вопрос по такому моменту. Вот эта строчка занимает довольно много времени Session session = HibernateUtil.createSessionFactory().openSession(); у меня же входящий поток данных от разных источников, где-то 70000 запросов в час, можно ли держать сессию открытой все время, просто делать Код: java 1. 2. 3. А закрывать ее Код: java 1. , когда сервер остнавливается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 11:50 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Действительно, все верно. Не надо каждый раз открывать и закпывать сессию, если мы постоянно обращаемся в БД с однотипными запросами. У меня после открытия 150 сессий вылетало исключение и я сделал такую штуку в своем сервлете Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Ntgthm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 19:56 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Я почитал несколько описаний пакета Hibernate и везде увидел вот такую штуку,кроме всего того, что уже сделано 1. Для каждого класса данных, связанных с таблице *.hbm.xml создается DAO интерфейс. 2. Для каждого интерфейса создается его реализация. 3. Создается класс фабрики. Вот я смотрю на все это нагромождение кода и думаю нифига себе. Это какой-то стандарт делать именно так или просто кому-то захотелось ввести, как "правила хорошего тона, чтобы в сложных задачах люди не путались в коде и т. д. и т. п." Потому что у меня есть тупо 3 файла, которые я описал выше. Мой сервлет получает данные в xml ввиде, они парсятся в объект класса Payment И я делаю Код: java 1. 2. 3. 4. Что там еще за геморрой с DAO ? Я не особо понимаю, зачем он мне тут нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 20:27 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Geronemo, - сессия хибера открывается не долго - проверь - сессию надо открыть в начале серлета и закрыть в конце - доли секунды - каждый сервлет в потоке. Если делать на инициал.сервлета, то будут ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 22:22 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Geronemo, для 1 класса пиши как угодно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 22:27 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Petro123Geronemo, - сессия хибера открывается не долго - проверь - сессию надо открыть в начале серлета и закрыть в конце - доли секунды Проверим, обязательно Если делать на инициал.сервлета, то будут ошибки А что за ошибки. Я немного погонял (полчаса) с открытой сессией, все как по маслу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 11:13 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Geronemo, 2 объекта с одинм ID в хибере параллельно из 2-х потоков-сервлетов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2014, 11:34 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
НЕ могу понять, что не так. Хочу сделать Hibernate HQL select запрос с 2-мя условиями, но вылетает ошибка, Код: java 1. 2. 3. 4. org.hibernate.hql.internal.ast.QuerySyntaxException: BufferPaymentTable is not mapped [from BufferPaymentTable BFT where BFT.paymenttype = :paymenttype and BFT.currenttime < :currenttime] У меня есть hbm.xml файл, где BufferPaymentTable связывается с классом Payment (1-е сообщение). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 18:09 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Geronemo, Так надо же намэпленный класс указывать в HQL, а не таблицу в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2014, 23:01 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Локшин МаркGeronemo, Так надо же намэпленный класс указывать в HQL, а не таблицу в базе. ДА, разобрался. К сожалению в инете так слабо с материалом, что много приходится делать методом тыка. Сейчас вот такая проблема появилась. Перевел все общение с БД на Hibernate. Нормально все работает 5 минут. За эо время постпает на сервлет 6000 запросов, все они пишутся в пределах одной сессии во временную базу. И раз в 5 секунд отдельный поток извлекает все записи из этой таблицы и помещает в другую (+ идет обработка не связанная с БД). Судя по логам 5 минут все происходит как надо, а потом начинает вываливаться вот такое авторex org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 16:49 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
В общем, я сделал 2 полярных решения. 1. Открываем и закрываем сессию при каждом обращении к БД. Где-то после 150 запросов при каждом обращение вылетает ex org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect 2.Я открыл сессию в самом начале и не закрываю, пока приложение работает. пара тысяч записей отработали. Местами коряво и данные в БД оказались не такими, как должны. в логе повторяющаяся ошибка ex org.hibernate.TransactionException: nested transactions not supported Т. е. получается. Что так, что так неправильно. Попахивает большим бредом. Потому что, когда у меня не было Hibernate все отлично работало на протяжении нескольких часов и миллиона записей в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 18:10 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Не закрываете соединения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 18:10 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Самое время закончить заниматься самодеятельностью и воспользоваться менеджером соединений - серверным datasource, если это сервер приложений - c3p0 или чем-то подобным в противном случае ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 19:06 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovНе закрываете соединения? Я пробовал закрывать каждое соединение. Также пробовал не закрывать вообще. И так и так вылета.т исключения, просто разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 19:22 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Geronemo, давай код в 1 варианте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 19:35 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Geronemo1. Открываем и закрываем сессию при каждом обращении к БД. не при каждом к БД, а в начале и конце сервлета ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 19:36 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
"Меня опять терзают смутные сомнения", что сессии, которую вы создаёте используют одно-единственное подключение. В результате команды из разных потоков перемешиваются со страшной силой, что и приводит к ошибке "недопустимы вложенные транзакции". Вариантов, собственно, два: 1. Как уже сказали - пул подключений; 2. Очередь из java.util.concurrent куда потоки сервлета будут складывать объекты с параметрами запроса, а единственный (отдельный) поток будет их выгребать и отправлять в базу. P.S. Зачем явно стартовать транзакцию для единственного DML-оператора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 19:38 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Petro123Geronemo, давай код в 1 варианте Вот такое у меня в doPost сервлета, куда посылается несколько сотен запросов в секунду. Без Hibernate все эти запросы успевали обрабатываться. А здесь висяк уже после 15 Код: java 1. 2. 3. 4. 5. 6. Также есть и другие места, где создаются сессии и закрываются, например. Если лень читать (я это вполне понимаю), то тут каждый 5 секунд происходит некоторая цепочка по по изъятию данных из одной таблицы, записи в другую и передачи их обработчикам. Несколько раз я открываю соединения, после использования сразу же закрываю. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 20:27 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
ivanraСамое время закончить заниматься самодеятельностью и воспользоваться менеджером соединений - серверным datasource, если это сервер приложений - c3p0 или чем-то подобным в противном случае Добавил вот такое в hibernate.cfg.xml <property name="hibernate.c3p0.min_size">10</property> <property name="hibernate.c3p0.max_size">0</property> <property name="hibernate.c3p0.timeout">300</property> <property name="hibernate.c3p0.max_statements">50</property> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 20:30 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
В общем, как только я добавил c3p0 в проект, у меня перестало что-либо писаться в базу вообще. Сейчас я это удалил и пишутся 144 записи, дальше org.hibernate.exception.JDBCConnectionException: Error calling Driver#connecе Методом перебора разных методов, на данный момент лучшим у меня является следующий. 1. никакого c3p0 2. Сервлет, который получает несколько сотен запросов работает с одним открытым соединением 3. Потоки, которые лязят в базу раз в несколько секунд каждый раз открывают и закрывают соединение. Таки образом у меня записалось 7200 записей. Дальше пошли org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 21:22 |
|
||
|
org.hibernate.MappingException: Java Hibernate
|
|||
|---|---|---|---|
|
#18+
Geronemo Код: java 1. 2. 3. 4. 5. 6. [/SRC] слона надо есть по частям (с) - вставь после старта транзакции процедуру payment = GetMyPayment(); - вынеси в неё всю лабуду. - убери из кода все потоки и доп обработку таблиц. - запусти нагрузочно на 30 мин просто вставку в БД .... работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2014, 21:26 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38735421&tid=2126566]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 422ms |

| 0 / 0 |
