EclipseLink QueryException без кеша - PullRequest
       9

EclipseLink QueryException без кеша

1 голос
/ 25 февраля 2012

Я отключил кэш EclipseLink, потому что я изменяю данные извне и не хочу, чтобы мне приходилось обновлять все вручную. По-видимому, это правильный способ отключить кеш в файле persistence.xml, чтобы избежать проблем с идентификацией объекта:

<properties>
    <property name="eclipselink.cache.shared.default" value="false"/>
</properties>

А вот и исключение:

Exception [EclipseLink-6094] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.QueryException
Exception Description: The parameter name [patient_id] in the query's selection criteria does not match any parameter name defined in the query.
Query: ReadAllQuery(name="file:/C:/dev/repsitory/trunk/java/server/myapp-server/myapp-server-ear/target/gfdeploy/au.com.myapp_myapp-server-ear_ear_1.0-SNAPSHOT/myapp-server-ejb-1.0-SNAPSHOT_jar/_myappPU590288694" referenceClass=PatientRecord sql="SELECT active, new_patient, patient_id_external, rank, patient_id, clinic_system_id FROM postgres.myapp.patient_record WHERE (patient_id = ?)")

Я даже не могу понять сообщение об исключении. Речь идет об именах параметров в запросе, но параметры JDBC не названы.

Есть идеи, как обойти это без повторного включения кэша?

1 Ответ

0 голосов
/ 26 февраля 2012

Как оказалось, я создал экземпляр PatientRecord, который включал один или два отдельных объекта (многие-к-одному с точки зрения PatientRecord). Это не было проблемой с кэшированием, потому что эти объекты никогда не отсоединялись.

Сначала я объединил объекты, потом все заработало.

...