У меня есть таблица «message» в MySQL, которая содержит столбец «content» типа VARCHAR (3000).Я пытаюсь выполнить следующий запрос с использованием JPA:
@PersistenceContext(unitName="Course7-ejbPU")
protected EntityManager manager;
(...)
manager.createQuery("SELECT m.content FROM Message m WHERE m.id=10").getResultList();
В некоторых случаях я получаю следующее исключение:
>Exception occurred in target VM: com/mysql/jdbc/OperationNotSupportedException
Экспериментально, установка различных значений для столбца "contentmsgstr "я обнаружил, что исключение выдается, когда длина текста в этом столбце превышает 1126. Когда я оставляю 1126 символов в столбце, он работает нормально, выдается еще один символ - исключение.Свойство объекта EJB, которое отображается в столбце, выглядит следующим образом:
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 3000)
@Column(name = "content")
private String content;
MySQL Workbench прекрасно работает с этим столбцом.Постоянным провайдером является EclipseLink 2.2.0.Кто-нибудь знает причину проблемы?Заранее спасибо.
Upd. Описанная проблема возникает время от времени.После того, как я написал этот пост, я забыл об этом на несколько дней.Кажется, что EJB просто хочет отдохнуть в течение некоторого времени, а затем они начинают работать нормально.Тем не менее, проблема повторилась.Джеймс, краткое описание брошенного исключения:
WARNING: LDR5207: ASURLClassLoader EarLibClassLoader :
doneCalled = true
doneSnapshot = ASURLClassLoader.done() called ON EarLibClassLoader :
urlSet = [URLEntry : file:/C:/Course7/dist/gfdeploy/Course7/lib/commons-codec-1.5.jar, URLEntry : file:/C:/Course7/dist/gfdeploy/Course7/lib/eclipselink-2.2.0.jar, URLEntry : file:/C:/Course7/dist/gfdeploy/Course7/lib/eclipselink-javax.persistence-2.0.jar, URLEntry : file:/C:/Course7/dist/gfdeploy/Course7/lib/gson-1.7.1.jar, URLEntry : file:/C:/Course7/dist/gfdeploy/Course7/lib/jdom-1.1.jar, URLEntry : file:/C:/Course7/dist/gfdeploy/Course7/lib/jstl-api-1.2.jar, URLEntry : file:/C:/Course7/dist/gfdeploy/Course7/lib/log4j-1.2.16.jar, URLEntry : file:/C:/Course7/dist/gfdeploy/Course7/lib/mysql-connector-java-5.1.18-bin.jar]
doneCalled = false
Parent -> org.glassfish.internal.api.DelegatingClassLoader@1fb5694
AT Sat Nov 19 14:33:48 EET 2011
BY :java.lang.Throwable: printStackTraceToString
(...)
Parent -> org.glassfish.internal.api.DelegatingClassLoader@1fb5694
was requested to find class com.mysql.jdbc.OperationNotSupportedException after done was invoked from the following stack trace
(...)
WARNING: A system exception occurred during an invocation on EJB MessageDAO method public java.util.List dao.MessageDAO.getTaskMessageList(int)
javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean:
java.lang.NoClassDefFoundError: com/mysql/jdbc/OperationNotSupportedException