Ошибка SQL: 8152, но не более макс. - PullRequest
2 голосов
/ 08 июня 2011

Я являюсь частью команды, пишущей ERP с использованием Seam и Jboss, и на одной из моих страниц я получаю сообщение об ошибке SQL: 8152 всякий раз, когда я пытаюсь что-то ввести.Ошибка SQL: 8152, для тех из вас, кто не знает, это когда вы пытаетесь ввести значение сверх максимального предела столбца.

Я дважды проверил свою сущность и базу данных, и их максимальные значения не изменились (50 nvarchars).Кроме того, я уверен, что мы не используем таблицы аудита.Затем я помещаю System.out.println ("");повсюду, и обнаружил, что ошибка происходила между этими двумя println (s):

            System.out.println("Flushing");
        entityManager.flush();
        System.out.println("Flushing complete");

, который является частью метода, который обрабатывает все изменения в таблице.Но я довольно новичок в программировании и не уверен, что происходит.

Любая помощь будет признательна, спасибо заранее, Джефф.

Ps Код по запросу, но я не писалэто потому, что его много повсюду.

1 Ответ

0 голосов
/ 09 июня 2011

Я бы проверил SQL, который выполняется при выполнении flush ().Таким образом, вы можете увидеть длину ваших данных и убедиться, что они слишком велики, как показывает ошибка БД.

Если вы используете Hibernate, вы можете вывести SQL на консоль.Вы не говорите, какая у вас БД, но если это SQL Server, вы можете использовать профилировщик, чтобы увидеть, какой SQL выполняется.

...