Есть ли эквивалент Java для данных Apple Core?

Недавно я услышал много похвал за архитектуру Apple Core Data.

Есть ли что-то подобное на Java-площадке, так что я могу играть с идеями Core Data (чтобы оценить, как он складывается против чего-то вроде Hibernate), без необходимости сначала входить в Cocoa/Objective-C?

Ответ 1

Имейте в виду, что базовые данные не являются главным образом основой для сохранения объектов, как я понимаю Hibernate et al. быть. Скорее, это структура управления графическим объектом (он поддерживает отношения и изменяет состояние для объектов, подверженных ограничениям модели), хотя это не инфраструктура инъекции зависимостей (например, Groovy или Springs). Так получилось, что он может сохранять этот граф объекта на диске, используя один из нескольких форматов (включая SQLite). Основные данные также не предназначены для многопользовательских систем, как это было в оригинальной Enterprise Object Framework. Он предназначен специально для однопользовательских настольных приложений и автоматизирует большую часть работы по созданию слоя модели для этого типа приложений. Для чего-либо еще, это, вероятно, не очень подходит.

Что вы рассматриваете для Core Data? Возможно, мы можем предоставить более конкретный ответ, если вы дадите нам более конкретный вариант использования.

Ответ 2

Если у вас есть Mac, установите WebObjects, который включен в Xcode, и у вас будет доступ к базе данных Enterprise Objects Framework на основе Java.

Ответ 3

На данный момент - одна из причин, по которой они отошли от преобразования Java в EOF, были осложнениями, возникшими в результате перевода (http://en.wikipedia.org/wiki/Core_Data).

Ответ 4

Пока я только знаю о Core Data, что я только что прочитал, это похоже на Eclipse Modeling Framework и Graphical Modeling Framework будет делать что-то подобное, так как они также обеспечивают автоматическую генерацию графического интерфейса из схемы и заботятся о сохранении экземпляров схемы. Чтобы получить постоянство реляционной базы данных, их можно было бы объединить с EclipseLink (который основан на Oracle TopLink) или какой-либо другой рамки ORM.