Commit Graph

1678 Commits

Author SHA1 Message Date
Oliver Gierke
9f0abb69fd DATAMONGO-1522 - Updated changelog. 2016-12-21 19:03:32 +01:00
Oliver Gierke
d65eebe9c3 DATAMONGO-1469 - Updated changelog. 2016-12-21 18:42:59 +01:00
Oliver Gierke
ca4f1f1b7c DATAMONGO-1467 - Polishing.
Original pull request: #431.
2016-12-19 19:45:17 +01:00
Christoph Strobl
46b119ce71 DATAMONGO-1467 - Add support for MongoDB 3.2 partialFilterExpression for index creation.
We now support partial filter expression on indexes via Index.partial(…). This allows to create partial indexes that only index the documents in a collection that meet a specified filter expression. 

new Index().named("idx").on("k3y", ASC).partial(filter(where("age").gte(10)))

The filter expression can be set via a plain DBObject or a CriteriaDefinition and is mapped against the associated domain type.

Original pull request: #431.
2016-12-19 19:45:14 +01:00
Oliver Gierke
fc0dd7d094 DATAMONGO-1565 - Polishing.
Formatting in ExpressionEvaluatingParameterBinder and StringBasedMongoQueryUnitTests. Turned Placeholder into value object.
2016-12-19 18:08:36 +01:00
Mark Paluch
712d8be7bb DATAMONGO-1565 - Polishing.
Consider quoted/unquoted parameter use with the same parameter reference. Extend date range in license headers.
2016-12-19 18:03:41 +01:00
Christoph Strobl
536dcc14ca DATAMONGO-1565 - Ignore placeholder pattern in replacement values for annotated queries.
We now make sure to quote single and double ticks in the replacement values before actually appending them to the query. We also replace single ticks around parameters in the actual raw annotated query by double quotes to make sure they are treated as a single string parameter.
2016-12-19 14:41:26 +01:00
Oliver Gierke
dc44c3a455 DATAMONGO-1525 - Improved creation of empty collections, esp. EnumSet.
We now use more type information to create a better empty collection in the first place. The previous algorithm always used an empty HashSet plus a subsequent conversion using the raw collection type. Especially the latter caused problems for EnumSets as the conversion into one requires the presence of component type information.

We now use Spring's collection factory and more available type information to create a proper collection in the first place and only rely on a subsequent conversion for arrays.
2016-12-01 20:18:06 +01:00
Christoph Strobl
8e90366712 DATAMONGO-1534 - Fix bulk operations missing to write type info.
We now correctly convert entities into their MongoDB representation including type information via _class property.

Original pull request: #415.
2016-11-28 09:05:46 +01:00
Oliver Gierke
ed36fd7260 DATAMONGO-1527 - Updated changelog. 2016-11-23 13:52:45 +01:00
Oliver Gierke
31a6a74743 DATAMONGO-1502 - After release cleanups. 2016-11-03 18:20:12 +01:00
Oliver Gierke
001ff508b5 DATAMONGO-1502 - Prepare next development iteration. 2016-11-03 18:20:10 +01:00
Oliver Gierke
6882fa9d10 DATAMONGO-1502 - Release version 1.9.5 (Hopper SR5). 2016-11-03 17:56:32 +01:00
Oliver Gierke
91eaae0ef6 DATAMONGO-1502 - Prepare 1.9.5 (Hopper SR5). 2016-11-03 17:56:00 +01:00
Oliver Gierke
785dc6ab78 DATAMONGO-1502 - Updated changelog. 2016-11-03 17:55:53 +01:00
Oliver Gierke
f011a9a4ee DATAMONGO-1521 - Added Aggregation.skip(…) overload to support longs.
Deprecated the one taking an int.
2016-11-03 15:04:07 +01:00
Christoph Strobl
c6c58050e7 DATAMONGO-1500 - Fix JSON serialization error in derived queries with field spec.
We now make sure not to eagerly attempt to convert given query parameters into a mongo specific format by calling toString() the query object, but rather delegate this to another step later in the chain.

Original pull request: #404.
2016-11-03 09:36:50 +01:00
Christoph Strobl
5fce8bcac6 DATAMONGO-1504 - Assert compatibility with MongoDB 3.4.
We now make sure to comply to the API requirements of mongo-java-driver 3.4 (in current beta1) by using empty DBObjects instead of null, ignoring non appropriate replication settings and cleaning up tests after execution.

Original pull request: #394.
2016-11-03 09:33:11 +01:00
Oliver Gierke
2f522bae5c DATAMONGO-1513 - Fixed identifier population for event listener generated, non-ObjectId on batch inserts.
The methods in MongoTemplate inserting a batch of documents previously only returned database generated identifiers, more especially ObjectId ones. This caused non-ObjectId identifiers potentially generated by other parties — i.e. an event listener reacting to a BeforeSaveEvent — not being considered for source object identifier population.

This commit adds a workaround augmenting the list of database generated identifiers with the ones actually present in the documents to be inserted. A follow-up ticket DATAMONGO-1519 was created to track the removal of the workaround in favor of a proper fix unfortunately requiring a change in public API (so a 2.0 candidate only).

Related tickets: DATAMONGO-1519.
2016-11-02 09:44:36 +01:00
Oliver Gierke
2e6f91924d DATAMONGO-1514 - Polishing.
Extended license years in copyright header.

Original pull request: #401.
2016-10-27 14:32:55 +02:00
Martin Macko
15f7a9c74a DATAMONGO-1514 - SpringDataMongodbQuery needs to be public.
SpringDataMongodbQuery is exposed publicly in QuerydslRepositorySupport, that's we've got to make it public to make sure class to the exposed methods from outside the package actually compile.

Original pull request: #401.
2016-10-27 14:32:55 +02:00
Oliver Gierke
49f52f0258 DATAMONGO-1495 - After release cleanups. 2016-09-29 14:20:12 +02:00
Oliver Gierke
396ea471fb DATAMONGO-1495 - Prepare next development iteration. 2016-09-29 14:20:08 +02:00
Oliver Gierke
eef17dd000 DATAMONGO-1495 - Release version 1.9.4 (Hopper SR4). 2016-09-29 13:54:03 +02:00
Oliver Gierke
84dc03b9d1 DATAMONGO-1495 - Prepare 1.9.4 (Hopper SR4). 2016-09-29 13:53:26 +02:00
Oliver Gierke
0ce220d54f DATAMONGO-1495 - Updated changelog. 2016-09-29 13:53:19 +02:00
Oliver Gierke
b693136396 DATAMONGO-1499 - Updated changelog. 2016-09-29 11:42:09 +02:00
Oliver Gierke
3c117db43b DATAMONGO-1498 - Removed defaulting of MongoMappingContext for repositories and auditing.
Previously we created a default bean definition for MongoMappingContext if none was present in the application context. That lookup for an existing one unfortunately comes too early, especially with Spring Boot in place. This then caused the MappingContext not being aware of the custom conversions and simply types registered by Boot.

We now removed the defaulting relying on a MappingMongoConverter being present in the Application context (which usually is the case for the usage with AbstractMongoConfiguration or the XML <mongo:mapping-converter /> alternative. We use that bean to lookup the MappingContext.
2016-09-28 16:25:52 +02:00
Oliver Gierke
075ccb1d00 DATAMONGO-1497 - MappingMongoConverter now consistently uses DbObjectAccessor.
We now use DbObjectAccessor also for preliminary inspections of the source DBObject (e.g. whether a value is present at all). Previously we operated on the DBObject directly which caused issues with properties mapped to nested fields as the keys weren't exploded correctly and thus the check always failed.
2016-09-22 17:56:09 +02:00
Oliver Gierke
e3bddd1c19 DATAMONGO-1494 - Updated changelog. 2016-09-21 07:28:56 +02:00
Oliver Gierke
22b113ce64 DATAMONGO-1450 - After release cleanups. 2016-09-20 11:19:04 +02:00
Oliver Gierke
0f5e91b091 DATAMONGO-1450 - Prepare next development iteration. 2016-09-20 11:18:59 +02:00
Oliver Gierke
557a528690 DATAMONGO-1450 - Release version 1.9.3 (Hopper SR3). 2016-09-20 10:54:50 +02:00
Oliver Gierke
762569c826 DATAMONGO-1450 - Prepare 1.9.3 (Hopper SR3). 2016-09-20 10:54:16 +02:00
Oliver Gierke
ad7d82f521 DATAMONGO-1450 - Updated changelog. 2016-09-20 10:54:11 +02:00
Mark Paluch
04deaacbec DATAMONGO-1493 - Fix minor typo in reference documentation.
Related pull request: #391.
2016-09-19 17:02:56 +02:00
Jordan Jennings
ec443f2b5e DATAMONGO-1493 - Fix minor typo in docs.
Original pull request: #391.
2016-09-19 17:01:01 +02:00
Christoph Strobl
f1b04ff354 DATAMONGO-1492 - Make o.s.d.m.core.aggregation.AggregationExpression public.
By turning `AggregationExpression` public we allow adding custom expressions without workarounds. It is now possible to create eg. `ProjectionOperation` like:

ProjectionOperation agg = Aggregation.project()
      .and(new AggregationExpression() {

        @Override
        public DBObject toDbObject(AggregationOperationContext context) {

          DBObject filterExpression = new BasicDBObject();
          filterExpression.put("input", "$x");
          filterExpression.put("as", "y");
          filterExpression.put("cond", new BasicDBObject("$eq", Arrays.<Object> asList("$$y.z", 2)));

          return new BasicDBObject("$filter", filterExpression);
        }
      }).as("profile");

Original pull request: #392.
2016-09-19 16:04:33 +02:00
Christoph Strobl
62dd7d070a DATAMONGO-1485 - Consider potential custom conversion for enums in Querydsl paths.
We now take potential registered converters for enums into account when serializing path expressions via SpringDataMongodbSerializer.

Original pull request: #388.
2016-09-19 07:12:35 +02:00
Oliver Gierke
5df92a86a3 DATAMONGO-1468 - Polishing.
Slightly touched test case.

Original pull request: #387
2016-09-08 10:30:21 +02:00
Christoph Strobl
2ca3df1ff4 DATAMONGO-1486 - Fix ClassCastException when mapping non-String Map key for updates.
We now make sure to convert Map keys into Strings when mapping update values for Map properties.

Original pull request: #387.
2016-09-08 10:30:21 +02:00
Mark Paluch
a8751249fd DATAMONGO-1406 - Propagate PersistentEntity when mapping query criteria for nested keywords.
We now propagate the PersistentEntity when mapping nested keywords so that the criteria mapping chain for nested keywords and properties has now access to the PersistentEntity and can use configured field names.

Previously the plain property names have been used as field names and potential customizations via @Field have been ignored.

Original Pull Request: #384
2016-08-25 13:29:06 +02:00
Mark Paluch
19abff826e DATAMONGO-1465 - Polishing.
Replace boolean flag in convertAndJoinScriptArgs with literal. Joined args are rendered to JavaScript and require always string quotation.

Original pull request: #383.
2016-08-23 15:07:31 +02:00
Christoph Strobl
5f199cf81f DATAMONGO-1465 - Fix String quotation in DefaultScriptOperations.execute().
This change prevents Strings from being quoted prior to sending them as args of a script.

Original pull request: #383.
2016-08-23 15:07:31 +02:00
Oliver Gierke
eb26b78a19 DATAMONGO-1471 - Converter only applies identifier values if actually available.
Setting the value for the identifier property is an explicit step in MappingMongoConverter and always executed if the type to be created has an identifier property. If the source document doesn't contain an _id field (e.g. because it has been excluded explicitly) that previously caused null to be set on the identifier. This caused an exception if the identifier property is a primitive type.

We now explicitly check whether the field backing the identifier property is actually present in the source document and only explicitly set the value if so.
2016-08-17 16:53:52 +02:00
Oliver Gierke
3d0053c61a DATAMONGO-1409 - Updated changelog. 2016-07-28 08:57:30 +02:00
Mark Paluch
7b15d246e8 DATAMONGO-1463 - Upgrade to mongo-java-driver 2.14.3.
Upgrade mongo-java-driver 2.14.3 and upgrade the mongo33 profile to use 3.3.0 (release).
2016-07-20 11:19:46 +02:00
Christoph Strobl
b75f4a2834 DATAMONGO-1453 - Fix GeoJson conversion when coordinates are Integers.
We now use Number instead of Double for reading "coordinates" from GeoJSON representations.

Original pull request: #369.
2016-06-24 14:05:33 +02:00
Oliver Gierke
d6ac4c6df5 DATAMONGO-1410 - After release cleanups. 2016-06-15 14:17:54 +02:00
Oliver Gierke
02f56c88f5 DATAMONGO-1410 - Prepare next development iteration. 2016-06-15 14:17:51 +02:00