Я пытаюсь сделать свое java-приложение более совместимым со стандартами, и одна из самых больших проблем, с которыми я сталкиваюсь, - это переход нашей среды ORM с Castor JDO на реализацию JPA (думая, либо Hibernate, либо DataNucleus). У нас есть собственный постоянный уровень абстракции данных, поэтому базовый рефакторинг можно легко сделать, добавив реализацию JPA в наш API и создав сопоставление. Тогда это становится более сложным, мы используем Castor OQL, не сильно, но не незначительно, и это не абстрагировано. Мы также выполняем необработанные JDBC-запросы непосредственно к базе данных, но через Castor получаем соединение. Мы используем ehcache для кэширования наших объектов между несколькими серверами.
Вопросы:
1) В целом, есть ли существенные различия в том, как Castor и JPA обрабатывают постоянные объекты, о которых я должен знать?
2) Предлагает ли язык запросов JPA те же функции, что и в Castors OQL? или мне нужно будет заглянуть в JDO?
3) Могу ли я использовать ecache с любыми реализациями JPA?
4) Кто-нибудь знает инструмент, который может преобразовать отображение Castor в отображение JPA?
наконец, я думаю, есть мысли о сильных сторонах различных реализаций JPA? Hibernate привлекателен, потому что он так широко используется, но меня больше всего беспокоит простота, так что, возможно, DataNucleas, EclipseLink (или что-то еще) могут послужить мне лучше?
спасибо,
Питер Коуэн