2010-04-02 4 views
1

Я хочу использовать JPA для моего слоя сохранения моего настольных приложений на Java, но у меня есть аналогичные проблемы, как описано в JPA - Entity design problemАльтернатива JPA

я не нашел решения выше рода проблемы, поэтому я хотите пойти с любой другой альтернативой JPA.

Было бы лучше, если я получу решение вышеуказанной проблемы.

+0

Я голосовал, чтобы закрыть этот вопрос как дубликат, потому что я не вижу никакой разницы с http://stackoverflow.com/questions/2562746/jpa-entity-design-problem/ в его текущем состоянии. –

ответ

6

IMO надлежащим образом справиться с такими проблемами было бы использование сгенерированного внутреннего (обычно Long) ID вместо натурального первичного ключа - это устраняет всю проблему. Конечно, для этого требуется модификация вашей схемы БД. Я включил пример отображения в мой answer to the other post.

Если это невозможно, и указанное решение вам не подходит (кстати, почему?), Вы можете попробовать Hibernate, который предлагает надмножество функций JPA (хотя я не могу предложить решение с Hibernate out от верхней части головы - особенно, не зная, какова ваша проблема с решением JPA).

1

Все работает отлично, если вы позволите jpa присвоить id (например, integer) в качестве первичного ключа для ваших объектов. Сложности в приведенном примере приведены только из-за ограничений, которые автор имел на первичных ключах

0

Как говорится в одном из других ответов, генерируйте «внутренний» (суррогатный) ключ ... ака «идентичность хранилища данных». Это часть спецификации JDO (JPA поддерживает только идентификатор приложения, тогда как JDO поддерживает идентификатор хранилища данных и приложения).

Смежные вопросы