У меня проблема при использовании Apache OJB с Spring 2 в моем веб-приложении.
Я использую ссылочный дескриптор OJB с двумя свойствами внешнего ключа. У меня есть объект A (родитель) и объект B (объект ссылки). Дело в том, что для объекта A может существовать или не быть объект B.
В случае, когда нет объекта B, который можно использовать с объектом A, объект B, по-видимому, создается (через Spring?) В любом случае. Однако я не могу получить доступ к членам объекта B.
Всякий раз, когда я проверяю, равен ли объект B == нулю, он всегда возвращает false, даже если в базе данных нет соответствующих значений.
Поскольку этот объект никогда не равен нулю, я решил, что могу проверить член объекта следующим образом:
if (objectb.getDocumentNumber == null) {return false; }
Однако я получаю исключение в jsp:
javax.servlet.jsp.el.ELException: An error occurred while getting property
"documentNumber" from an instance class
org.sample.pojo.Objectb$$EnhancerByCGLIB$$78022a2
и это исключение в отладчике при создании объекта B:
com.sun.jdi.InvocationException occurred invoking method.
Я предполагаю, что дескриптор-ссылка должен быть отношением 1: 1+, а не 1: 0+.
отношения. Мне было интересно, если я должен установить для свойства 'auto-retrieve' значение false, а затем использовать PersistenceBroker.retrieveAllReferences (Object obj); метод в соответствии с указаниями. Однако возвращаемое значение этого метода 'void', поэтому я предполагаю, что Spring каким-то образом создает и устанавливает для меня ссылочный класс. (Возвращая меня к той же проблеме, что и я.)
Мне понадобится способ проверить, существует ли сначала эталонный объект. Если нет, не вызывайте этот метод retrieveAllReferences, но я не понимаю, как.
Я все об этом говорю неправильно? Разве ссылка-дескриптор не допускает отношения 1: 0?
Любая работа вокруг моей проблемы?
Ваши предложения очень ценятся!