All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- updated Java Driver to version
7.12.0
- updated Java Driver to version
7.10.0
- updated Java Driver to version
7.9.0
- added MD-Index support (#320, DE-789)
- added allowRetry AQL query option (DE-589)
- fixed arangoTemplate bean factory (#319)
- fixed delete with revision in ArangoRepository (#317, DE-843)
- fixed mapping of entities with non-string ids (#316, DE-842)
- added
METHOD
andANNOTATION_TYPE
to property annotations targets (#314, DE-780) - fixed concurrency bug in date formatting and parsing (#313, DE-840)
- updated
arangodb-java-driver
to version7.8.0
- added support to Spring Data
3.3
(DE-816, #306) - added
LazyLoadingProxy.isResolved()
to check whether a lazy proxy has been already resolved or not (DE-805, #271) - added support conputed values in data definitions (DE-779, docs-hugo#477)
- added support mapping of computed values (DE-604, docs-hugo#477)
- added configuration for changing
ArangoRepository#save()
behavior returning new entity instances instead of original ones (DE-539, #295, docs-hugo#476) - added support for Java records, Kotlin data classes and immutable entities (DE-539, #295, docs-hugo#476)
- updated
arangodb-java-driver
to version7.7.1
- fixed unit of measure of GeoResults distance (DE-803)
- fixed concurrency in annotation cache (#302)
- dropped support for Spring Data
3.1
(DE-816, #306) - moved CI to CircleCI (DE-823, #308)
- updated
arangodb-java-driver
to version7.5.1
- updated to Spring Data 3.2 (DE-767)
- fixed
VPACK
support (DE-707, #297) - fixed type information equality (#288)
- upgraded dependency Spring Framework 6 and Spring Data 3 (#250)
CrudRepository.deleteById()
silently ignores an unknown id (#283)- exceptions during
ArangoOperations.query()
are now translated (#281) - improved exception translation
OptimisticLockingFailureException
is now thrown in case of_rev
conflict (#282) - raised required minimum Java version to JDK 17
- deprecated Fulltext Index support
- changed
deduplicate
default value totrue
in@PersistentIndex
and@PersistentIndexed
annotations - underlying Java driver (accessible via
com.arangodb.springframework.core.ArangoOperations#driver()
) uses nowArangoConverter
bean to serialize and deserialize user data (#284) - renamed
ArangoOperations
methods operating on multiple documents withAll
suffix (e.g.insert(Iterable)
has been renamed toinsertAll(Iterable)
(#284) ArangoOperations
methods for single document manipulation have now specific return types (,DocumentDeleteEntity<T>
,DocumentUpdateEntity<T>
,DocumentCreateEntity<T>
) (#284)ArangoOperations
methods for multiple documents manipulation have now specific return types as for single documents, wrapped byMultiDocumentEntity<>
(#284)ArangoOperations
methods for documents manipulation accepting optionsreturnNew(boolean)
orreturnOld(boolean)
return now the deserialized entity in the response (accessible viagetNew()
orgetOld()
) (#284)- changed the arguments order of some
ArangoOperations
methods for better API coherence (#284) - changed the arguments type of some
ArangoOperations
methods to be covariant (#284) - return updated entity from
ArangoOperations.repsert()
(#285) - removed deprecated
AbstractArangoConfiguration
in favor ofArangoConfiguration
- removed support for Joda-Time
- fixed merge AQL options from
@QueryOptions
annotation andAqlQueryOptions
parameter (#276) - upgraded dependency
com.arangodb:arangodb-java-driver:6.24.0
(DE-541)
- upgraded dependency
com.arangodb:arangodb-java-driver:6.22.0
(DE-541)
- improved resolution of already fetched embedded entities (#270)
- added
deduplicate
in persistent indexes options (#242) - dependencies update
- fixed support for
Pageable.unpaged()
inPagingAndSortingRepository
(#255) - fixed concurrency in SPEL evaluation of string based queries (#266)
- fixed counterclockwise box generation for compatibility with geo json polygons in ArangoDB 3.10 (#231)
- fixed query generation with custom field names (#240)
- fixed compatibility with Lombok classes (#241)
- fixed WITH clause generation for compatibility with ArangoDB 3.10 (#247)
- deprecated hash and skiplist indexes
- fixed support for collection names containing
-
symbol (#230) - upgraded dependency
com.arangodb:arangodb-java-driver:6.16.0
- added mapping support to
LocalTime
(#227)
NOTE: new changes in Spring Core named parameters discovery could result in runtime exceptions when using positional query parameters. Using named query parameters is therefore recommended.
- updated support of spring-data to
2.5.x
- upgraded dependency
com.arangodb:arangodb-java-driver:6.13.0
- upgraded dependency
com.arangodb:velocypack:2.5.4
- fixed binding Point parameter in query derivation (#223)
- added support to geoJSON types and Spring Data geo types (#222)
- added SPEL support to custom AQL query on repository methods (#221)
- fixed missing
META-INF/spring.factories
(#155) - fixed query derivation for not persistent nested attribute (#216)
- added annotations to ttl indexes (
@TtlIndex
and@TtlIndexed
) - removed dependencies on
velocypack-module-jdk8
andvelocypack-module-joda
- upgraded dependency
com.arangodb:arangodb-java-driver:6.11.1
- upgraded dependency
com.arangodb:velocypack:2.5.3
- upgraded dependency
com.arangodb:arangodb-java-driver:6.8.2
- support for array search by example (#202)
- updated support of spring-data to
2.4.x
- upgraded dependency
com.arangodb:velocypack:2.5.1
- upgraded dependency
com.arangodb:arangodb-java-driver:6.8.0
- fixed swallowed exception in query result conversion (#213)
- fixed escaping of array brackets in user queries (#208)
- find by example using regex string matcher
- find by example matching any object in nested array
- reimplemented
ArangoOperations.repsert()
using AQL UPSERT (also used byArangoRepository.save()
) - dependencies update
- fixed
null
serialization when writing Maps, Arrays and Collections - fixed automatical collection creation on
ArangoRepository.count()
andArangoRepository.findAll()
- fixed serialization of
@Ref
fields with custom names - fixed collection like mapping, allowing duplicate values
- fixed lazy behavior of
ArangoOperations.findAll()
- set
org.springframework.data.build:spring-data-parent
as parent project - added
org.springframework.boot:spring-boot-dependencies
to dependency management
- dependencies update
- upgraded dependency arangodb-java-driver 6.3.0
- upgraded dependency arangodb-java-driver 6.1.0
3.2.1 - 2018-12-17
- fixed preventing the use of multiple edge entities in a query inside
@Relations
- fixed
ArangoRepository.save()
to perform repsert instead of upsert (for ArangoDB < 3.4) - fixed deserialization of nested
Map
s - fixed deserialization of type
Object
3.2.0 - 2018-11-09
-
added interface
ArangoConfiguration
to replaceAbstractArangoConfiguration
ArangoConfiguration
provides default methods and can be implemented directly without the need of the classAbstractArangoConfiguration
.
- updated support of spring to
5.1.x
- updated support of spring-data to
2.1.x
- deprecated
AbstractArangoConfiguration
- removed use of javax.xml.bind to better support Java 9 and above
- fixed NPE when loading non-existing data into fields of primitive type (issue #127)
- upgraded dependency arangodb-java-driver 5.0.1
- fixed dirty read
- fixed connection stickiness
3.1.0 - 2018-09-18
- added dirty read support (reading from followers) for AQL queries
- added
QueryOptions#allowDirtRead
- added
- use AQL
LIKE
instead ofREGEX_TEST
for query by example inArangoRepository
- upgraded dependency arangodb-java-driver 5.0.0
3.0.0 - 2018-09-04
-
added support for non-String
@Id
s (issue #79) -
added annotation
@ArangoId
as representation for field_id
(instead of@Id
) -
added support for saving entities lazy loaded
Entities loaded over
@Ref
/@From
/@To
/@Relations
withlazy
==true
can now be saved back into the database. -
added logging of query warnings when executed through
ArangoRepository
(issue #56) -
added convenience method
ArangoOperations#query(String, Class)
-
added convenience method
ArangoOperations#query(String, Map<String, Object>, Class)
-
added convenience method
AbstractArangoConfiguration#customConverters()
to add custom converters -
added SpEL expression parsing for database names
SpEL expressions can now be used within
AbstractArangoConfiguration#database()
. This allows Multi-tenancy on database level. -
added mapping events (
BeforeDeleteEvent
,AfterDeleteEvent
,AfterLoadEvent
,BeforeSaveEvent
,AfterSaveEvent
) -
added support for non-collection fields annotated with
@Relations
/@From
/@To
in domain objects annotated with@Document
(issue #104) -
added support for placeholder
#collection
in@Query
methods -
added auditing support through annotations
@CreatedDate
/@CreatedBy
/@LastModifiedDate
/@LastModifiedBy
-
save
@Id
values as_key
instead of_id
(issue #78) -
changed SpEL expression parsing for collection names
SpEL expressions in
@Document#value
/@Edge#value
are now parsed whenever the domain entity is accessed. This allows Multi-tenancy on collection level. -
upgraded dependency arangodb-java-driver 5.0.0
- removed
com.arangodb.springframework.annotation.Key
- removed
com.arangodb.springframework.annotation.Param
- removed
com.arangodb.springframework.core.convert.DBEntity
- removed
com.arangodb.springframework.core.convert.DBCollectionEntity
- fixed repository methods with
Example
usingStringMatcher.CONTAINING
(issue #113) - added
toString()
,equals()
andhashCode()
to proxy
2.3.1 - 2018-08-13
- fixed a bug in derived queries when using two times
@Relations
in one entity
2.3.0 - 2018-07-18
- deprecated
com.arangodb.springframework.annotation.Key
- deprecated
com.arangodb.springframework.core.convert.DBEntity
- deprecated
com.arangodb.springframework.core.convert.DBCollectionEntity
2.2.2 - 2018-07-09
- fixed
ArangoOperations#getVersion()
use configured database instead of _system
2.2.1 - 2018-07-03
- fixed
ArangoOperations#upsert(T, UpsertStrategy)
(issue #92)- Check
Persistable#isNew
- Check
- fixed
ArangoOperations#upsert(Iterable<T>, UpsertStrategy)
(issue #92)- Check
Persistable#isNew
- Check
2.2.0 - 2018-07-02
- added
ArangoOperations#repsert(T)
- added
ArangoOperations#repsert(Iterable<T>, Class<T>)
- added support for streaming AQL cursors
- added
QueryOptions#stream()
- added
- added
QueryOptions#memoryLimit()
- added support for satellite collections
- added
@Document#satellite()
- added
@Edge#satellite()
- added
- upgraded dependency arangodb-java-driver 4.6.0
- changed
SimpleArangoRepository#save()
to useArangoOperations#repsert()
when ArangoDB version >= 3.4.0 - changed
SimpleArangoRepository#saveAll()
to useArangoOperations#repsert()
when ArangoDB version >= 3.4.0 - changed
ArangoOperations#upsert(T, UpsertStrategy)
to work with@Id
in addition to@Key
- changed
ArangoOperations#upsert(Iterable<T>, UpsertStrategy)
to work with@Id
in addition to@Key
- deprecated
ArangoOperations#upsert(T, UpsertStrategy)
- deprecated
ArangoOperations#upsert(Iterable<T>, UpsertStrategy)
2.1.9 - 2018-06-26
- fixed derived query with
containing
onString
(issue #84)
2.1.8 - 2018-06-25
- upgraded dependency arangodb-java-driver 4.5.2
- fixed
ArangoDB#aquireHostList(true)
with authentication - added support for custom serializer
- fixed
2.1.7 - 2018-06-14
- allow override of CRUD methods of
ArangoRepository
with@Query
- upgraded dependency arangodb-java-driver 4.5.0
- fixed lazy use of
@Relations
/@From
/@To
when using a Set<>
2.1.6 - 2018-06-07
- fixed relation cycle (issue #43)
2.1.5 - 2018-06-07
- upgraded arangodb-java-driver to 4.4.1
- fixed relation cycle (issue #43)
2.1.4 - 2018-06-04
- added
java.time.*
toArangoSimpleTypes
- added paging and sorting support for native queries
- annotated
TimeStringConverters
for compatibility with Spring Data 2.0.7-RELEASE
- fixed support for
ArangoCusor
as query-method return type (compatibility with Spring Data 2.0.7-RELEASE)
2.1.3 - 2018-05-04
- added support for named queries
- deprecated
@Param
annotation, there is already such an annotation from Spring Data
- fixed floating point numbers in derived queries
- fixed distance calculation in derived geo queries
2.1.2 - 2018-04-23
- fixed serialization of enums (issue #39)
2.1.1 - 2018-04-20
- fixed
org.joda.time.DateTime
parsing
2.1.0 - 2018-04-20
- added
DataIntegrityViolationException
toExceptionTranslator
- added type mapper implementation & custom conversions extension (issue #33)
- fixed race conditions in
ArangoTemplate
when creating database and collections (issue #35) - fixed missing deserialization of return types of
@Query
methods(issue #21) - fixed handling of
java.time
in converters (issue #36, #24, #25) - fixed handling of
org.joda.time
in converters (issue #36)
2.0.3 - 2018-03-23
- fixed missing WITH information in derived query
- fixed missing WITH information in AQL when resolving annotation @Relations (issue #9)