Neues von Spring Data
Annotation Config
Spring Data wurde um die XML-freie Konfigurationsmöglichkeit im Spring-3.1-Stil erweitert. Damit ist es möglich, @Enable(Jpa|Mongo|Neo4j|Gemfire)Repositories statt des <repository>-Eintrags in der context.xml zu verwenden.
@EnableJpaRepositories(base-package = "de.jaxenter.repositories") class Application { }
Wird die Repositories-Annotation ohne Angabe eines Basepackage verwendet, so wird das Package der annotierten Klasse gescannt.
MongoDB
Die Unterstützung von GridFS in Spring Data MongoDB wurde verbessert. Mit dem GridFsTemplate ist es nun einfach möglich, Dateien zu schreiben und zu suchen.
@Test public void storeAndFindFile() { Resource file = . // lookup File or Resource template.store(file.getInputStream(), "filename.txt"); Listresult = template.find(query(whereFilename().is("filename.txt"))) }
Möchte man Spring Data MongoDB in einem JavaEE-6-Umfeld verwenden, können CDI Managed Beans jetzt auch mit @Inject injiziert werden. Außerdem kann eine JSR 303 Bean Validation beim Speichern automatisch angestoßen werden. Um diese zu aktivieren, muss eine Bean der Klasse ValidatingMongoEventListener oder ein leeres <mongo:mapping-converter /> Namespace-Element hinzugefügt werden. Eine Unterstützung für optimistisches Locking steht auch zur Verfügung, dafür muss eine Entität lediglich um ein mit @Version annotiertes Attribut erweitert werden. Für die Verwendung von Joda-Date in Spring Data MongoDB müssen mit dem Arora Release keine eigenen Converter mehr hinzugefügt werden.
Neo4j
In Spring Data Neo4j gibt es nun Unterstützung für Unique Entities. Dafür müssen diese mit @Indexed(unique=true) annotiert werden. Beziehungen zwischen den Knoten lassen sich nun mit @RelationshipEntity, @RelationshipType und @RelatedTo[Via] genau beschreiben.
Das Spring Data Commons Artifact wurde von spring-data-commons-core zu spring-data-commons umbenannt. Hatte man dieses früher in Maven selbst verwaltet, muss die Artifactid neben der Version ebenfalls angepasst werden.
Fazit
Mit Spring Data steht ein tolles Projekt zur Verfügung, um die Implementierung der Persistenz-Schicht zu vereinfachen und zu homogenisieren. Das nächste Release ist für Mai geplant. Der Hauptfokus soll darauf gerichtet sein, die verschiedenen Features in den Modulen anzugleichen. Spring Data Rest, welches bisher nur Unterstützung für JPA-Repositories bot, soll dann für alle Module zur Verfügung stehen, CDI Support soll in Neo4j und Gemfire Einzug erhalten. An einer Unterstützung für das MongoDB Aggregation Framework wird ebenfalls gearbeitet.
Hinterlasse einen Kommentar