Ho appena aggiornato da Braccio terzo punto a EclipseLink e sono in esecuzione in questo erroreEclipseLink - chiave di query non valido [latestVersionFlag] nell'espressione
Eccezione [EclipseLink-6015] (Eclipse Persistence Services - 2.6.1.v20150916-55dc7c3) : org.eclipse.persistence.exceptions.QueryException Exception Descrizione: Chiave di query non valida [latestVersionFlag] nell'espressione. Query: ReadAllQuery (name = "bookingVersionCollection" referenceClass = BookingVersion)
mio descrittore assomiglia a questo
OneToManyMapping bookingVersionCollectionMapping = new OneToManyMapping();
bookingVersionCollectionMapping.setAttributeName("bookingVersionCollection");
bookingVersionCollectionMapping.setReferenceClass(BookingVersion.class);
bookingVersionCollectionMapping.useTransparentCollection();
bookingVersionCollectionMapping.useCollectionClass(IndirectList.class);
bookingVersionCollectionMapping.addAscendingOrdering("bookingVersionID");
bookingVersionCollectionMapping.addTargetForeignKeyFieldName("RS_BOOKINGVERSION.RS_BKG_ID", "RS_BOOKING.RS_BKG_ID");
bookingVersionCollectionMapping.setSelectionCriteria(bookingVersionCollectionMapping.buildSelectionCriteria()
.and(expBuilder.get("latestVersionFlag").equal(ResConstants.FLAG_YES)));
descriptor.addMapping(bookingVersionCollectionMapping);
Ho anche una mappatura per la classe BookingVersion che ha il mapping per il campo
DirectToFieldMapping latestVersionFlagMapping = new DirectToFieldMapping();
latestVersionFlagMapping.setAttributeName("latestVersionFlag");
latestVersionFlagMapping.setFieldName("RS_BOOKINGVERSION.LATESTVERSIONFLAG");
descriptor.addMapping(latestVersionFlagMapping);
E all'interno dell'oggetto Java poco di BookingVersion.java il campo è simile a questo ..
private char latestVersionFlag = ResConstants.FLAG_YES;
Qualche idea? Questo codice ha funzionato in Toplink, quindi non sono sicuro di cosa sta succedendo.
Quando si aggiunge la prenotazioneVersionCollectionMapping e da dove viene generata l'eccezione? Sto indovinando, ma sembra che l'espressione impostata nel bookingVersionCollectionMapping venga elaborata prima che tutto il resto sia completato e l'ultimaVersionFlagMapping non ha ancora una chiave di query. Potrebbe essere necessario aggiungere la selectCriteria al bookingVersionCollectionMapping utilizzando un descrittore personalizzato, in modo che venga aggiunto dopo che tutto il resto è stato elaborato – Chris
Potresti aggiungere lo stacktrace completo (se lo hai ancora) in modo che i lettori possano confrontarlo con altre domande e problemi di EclipseLink. Questo potrebbe essere discusso su https://bugs.eclipse.org/bugs/show_bug.cgi?id=466581. –