JPA 1.0: Как написать эффективный преобразователь из объекта в объект передачи? - PullRequest
1 голос
/ 23 сентября 2011

Я хочу написать эффективный преобразователь, который преобразует сущность JPA (1.0) в мой объект передачи и что:

  • будет вызываться в транзакционном контексте,
  • не вызовет никакого дополнительного взаимодействия с БД, то есть преобразует только то, что уже загружено.

Я не могу использовать конструкцию if (entity.getSomething() != null), поскольку «что-то» будет загружено.

ЕдинственноеЯ могу подумать о том, чтобы преобразователь порождал новую транзакцию, перезагружал сущность в контексте новой транзакции и фиксировал ее, а затем работал над отсоединенной сущностью.Это требует перезагрузки, хотя.Какие-нибудь более умные идеи?

Ответы [ 3 ]

1 голос
/ 29 сентября 2011

ORM прокси может помочь с использованием Gilead.http://noon.gilead.free.fr/gilead/

1 голос
/ 26 сентября 2011

Вы можете использовать XStream для преобразования вашей сущности [неявно Serializable] в XML и десериализации обратно в объект. Возможно, он не эффективный, но быстрый и простой в реализации.

Я успешно использую тот же процесс для проекта.

0 голосов
/ 27 сентября 2011

JPA предоставляет класс PersistenceUnitUtil с API-интерфейсом isLoaded (), который можно использовать для определения загрузки отношений.

...