Если все остальное не работает, откройте файл в двоичном формате, чтобы убедиться, что в начале файла нет смешных символов [3 непечатаемых символа в начале файла, которые идентифицируют файл как utf-8]. Мы это сделали и нашли. поэтому мы преобразовали файл с utf-8 в ascii, и он сработал.
Я думаю, что номер 5 - то, почему существует пункт "выборки" в HQL. Вы могли использовать это, или действительно ли проблема более сложна?
Я был в клиенте, который стандартизировал проекты it на № 5, и он работал действительно хорошо. Заключительным аргументом служебного вызова был разделенный запятыми список всех свойств, которые будут загружены, например:
CustomerService.getCustomerById(id, "parent, address, address.city")
Я полагаю, что они использовали пункт выборки для этого. Я реализовал ту же идею однажды для jpa использование PropertyUtils для инициирования ленивой загрузки.
Этот удаленный сервис... - это другая часть того же приложения? если так, нет никакой проблемы, совместно использующей классы и отправляющей экземпляры назад и вперед (то же идет для RMI, с помощью тупиков).
Затем существует опция доступа к веб-сервису или чему-то подобному, где эти два приложения, передающие долю никакие классы, и это делает вещи еще более хитрыми. Я собираюсь столкнуться с этой проблемой в ближайшем будущем, и мне очень будет интересно знать ответ.
Так или иначе мой голос для DTOs. Я думаю, что они предоставляют лучшее и самое легкое решение, когда это применимо, и справка сохраняет код простым и удобным в сопровождении.
Yuval =8-)
Если Ваш удаленный сервис только существует для предоставления клиенту данные, то выключение ленивой загрузки на всех Быть в спящем режиме объектах могло бы помочь.
Лично, однако, я думаю, что DTOs являются правильным способом пойти. Путем выражения удаленного интерфейса с точки зрения DTOs Вы уверены, что получаете все, в чем Вы нуждаетесь, и ничто, что Вы не ожидали.