JPA и совместимость с поставщиками персистентности и поставщиками баз данных - PullRequest
2 голосов
/ 03 мая 2010

JPA обещает быть независимым от поставщиков для персистентности и базы данных. Но я уже знаю, что некоторые персистентные фреймворки, такие как hibernate, не идеальны (кодировка символов, нулевое сравнение), и вам нужно адаптировать свою схему для каждой базы данных. Поскольку существует два уровня (постоянная структура и база данных), я бы предположил, что они работают над использованием некоторых кодов JPA ...

Есть ли у кого-нибудь опыт работы с множественной поддержкой, и если да, каковы уловки и рекомендации, чтобы избежать таких несовместимостей?

1 Ответ

2 голосов
/ 03 мая 2010

На уровне JPA единственное, что вы можете сделать, - это использовать API JPA используемой в данный момент библиотеки персистентности (т. Е. При использовании hibernate не используйте Hibernate.initialize ()).

На уровне БД, ваша лучшая ставка - сохранять простоту, так как шансы на различия в поведении возрастают, когда вы уходите от наиболее частых вариантов использования. В частности, это может означать, что не нужно использовать составные первичные ключи, не хранить двоичные данные, вообще не использовать выполнение SQL ... Уверен, у других будет больше хороших примеров практических приемов, которые позволят вам легко переходить из одной базы данных в другую.

Вышеизложенное позволило мне переключать одно приложение между PostgreSQL и Oracle, а другое - между PostgreSQL и несколькими «диалектами» (в переводе на спящий язык) MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...