2009-01-23 7 views
13

Ich habe kürzlich eine Menge Lob für Apples Core Data Architektur gehört.Gibt es ein Java-Äquivalent zu Apple Core Data?

Gibt es etwas ähnliches in Java Land, so dass ich mit den Ideen von Core Data spielen kann (um zu bewerten, wie es gegen etwas wie Hibernate stapelt), ohne zuerst in Cocoa/Objective-C zu kommen?

Antwort

0

Nicht im Moment - einer der Gründe, warum sie sich von der Java-Konvertierung von EOF entfernten, waren die Komplikationen, die durch die Übersetzung entstanden (http://en.wikipedia.org/wiki/Core_Data).

0

Während ich nur über Core Data weiß, was ich gerade gelesen habe, klingt es wie die Eclipse Modeling Framework und die Graphical Modeling Framework würde etwas ähnliches tun, wie sie auch automatische Generierung einer GUI aus einem Schema bieten, und kümmern sich um die Persistenz des Schemas Instanzen. Um die Persistenz von relationalen Datenbanken zu erhalten, könnten sie möglicherweise mit EclipseLink (das auf Oracles TopLink basiert) oder einem anderen ORM-Framework kombiniert werden.

+0

EMF ist sehr unterschiedlich. Es arbeitet mit einem AST im Speicher, der nicht die Art von Daten ist, die Sie in einer Datenbank speichern würden. –

6

Denken Sie daran, dass Kerndaten nicht in erster Linie ein Objekt Persistenz Framework ist, wie ich Hibernate et al verstehen. sein. Vielmehr handelt es sich um ein Framework zur Verwaltung von Objektdiagrammen (es verwaltet Beziehungen und ändert den Status für Objekte, die den Modelleinschränkungen unterliegen), obwohl es sich nicht um ein Abhängigkeitsinjektions-Framework handelt (wie Groovy oder Springs). Es ist einfach so, dass es dieses Objektdiagramm mit einem von mehreren Back-End-Formaten (einschließlich SQLite) auf der Festplatte speichern kann. Core Data ist auch nicht für Multi-User-Systeme gedacht, wie das Original Enterprise Object Framework. Es ist speziell für Single-User-Desktop-Anwendungen gedacht und automatisiert einen Großteil der Arbeit beim Schreiben einer Model-Ebene für diese Art von App. Für alles andere ist es wahrscheinlich keine gute Passform.

Woran denken Sie über Core Data nach? Vielleicht können wir eine spezifischere Antwort geben, wenn Sie uns einen spezifischeren Anwendungsfall geben.

+0

Es klang so, als ob er nur Kerndaten erforschen wollte, ohne Objective-C zu lernen, damit er entscheiden konnte, ob er Objective-C lernen wollte, um Core Data verwenden zu können. Oder etwas ähnliches… –

4

Wenn Sie einen Mac haben, installieren Sie WebObjects - das in Xcode enthalten ist - und Sie haben Zugriff auf das Java-basierte Enterprise Objects Framework.