H2 (встроенная) база данных в Java - StackOverflowError - PullRequest
2 голосов
/ 08 декабря 2010

Я использую встроенную базу данных H2 в проекте Java SE (jdbc: h2: file: ...) с JPA 2.0 (EclipseLink 2.1.1). Я также установил MODE = Derby в соединении URL JDBC. Все работало отлично, пока я не добавил несколько новых сущностей и не попытался их сохранить. Я получаю StackOverflowError :( Я предполагаю, что это связано с процессом оптимизации / сжатия / архивирования файлов базы данных h2, потому что размер файла становится огромным (должен быть ~ 1 МБ, но это временный файл 60 МБ и 40 МБ). Вопрос в том, что происходит и как я могу его отключить? Файл БД поврежден из-за StackOverflowError:]

Спасибо за любую помощь!

1 Ответ

3 голосов
/ 08 декабря 2010

Бесконечная рекурсия - причина. Вы должны найти это. АОП может использоваться для перехвата и регистрации каждого вызова метода. Когда начнется рекурсия, вы сможете заметить повторяющиеся вызовы методов, которые, к счастью, приведут вас к самому вызывающему.

...