Version 2.0.0
Version 2.0.0 (Jul 06, 2020)
Notes
Downloads
Binaries can be found on maven central.
Docs
Full documentation and javadoc can be found at https://morphia.dev/2.0.0/ and https://morphia.dev/2.0.0/javadoc/.
114 Issues Resolved
BREAKING
- Issue #911: Aggregation pipeline elements improvements
- Issue #959: Add T merge(T entity) method
- Issue #1122: Remove org.mongodb.morphia.query.Query#order(java.lang.String)
- Issue #1230: FindAndModify Default Behaviour
- Issue #1275: remove QueryImpl#parseFieldsString from the public API
- Issue #1284: Remove MapReduce functionality
- Issue #1294: Remove support for snapshots and $isolate
- Issue #1298: Remove exists methods from Datastore
- Issue #1300: Rename methods
- Issue #1309: Deprecate Morphia's Geo wrappers in favor of the driver's
- Issue #1350: Drop MongoIterable from Query's parent types
- Issue #1351: Replace all uses of DBObject with Document and remove all exposures of these types from the API where possible
- Issue #1352: Remove morphia logging code and migrate to slf4j
- Issue #1396: Update discriminator key/value to new defaults
- Issue #1398: Remove the date storage configuration item
TASK
- Issue #1399: Add operation scraper
- Issue #1427: Pull remaining methods up from AdvancedDatastore
- Issue #1450: Add licence file in core jar
AGGREGATION
- Issue #911: Aggregation pipeline elements improvements
- Issue #976: add minDistance option to Aggregation Pipeline
- Issue #993: Add support for $graphLookup aggregation stage
- Issue #994: Add support for $sortByCount aggregation stage
- Issue #995: Add support for $facet aggregation stage
- Issue #996: Add support for $bucket aggregation stage
- Issue #997: Add support for $bucketAuto aggregation stage
- Issue #998: Add support for $count aggregation stage
- Issue #999: Add support for $addFields aggregation stage
- Issue #1000: Add support for $replaceRoot aggregation stage
- Issue #1003: Add options to $unwind
- Issue #1005: $stdDev aggregation operator for standard deviation
- Issue #1008: add support for $lookup stage
- Issue #1010: Boolean aggregation expressions
- Issue #1011: Aggregation set expressions
- Issue #1012: Comparison expressions
- Issue #1013: Aggregation arithmetic expressions
- Issue #1014: Aggregation String expressions
- Issue #1015: Aggregation text expressions
- Issue #1016: Aggregation array expressions
- Issue #1017: Aggregation variable expressions
- Issue #1018: Aggregation literal expressions
- Issue #1019: Aggregation date expressions
- Issue #1020: Aggregation conditional expressions
- Issue #1021: Aggregation accumulators
- Issue #1022: Aggregation pipeline stages
- PR #1228: #1008 Support for sub queries in $lookup
- Issue #1229: Add support for $expr
- Issue #1346: Hint an index for aggregation
- Issue #1428: migrate Aggregation.merge() and .out()
BUG
- Issue #204: Mapping Classes with generic super-class or super-interface [moved]
- Issue #552: Support embedded lists of a generic type parameter
- Issue #553: Generics mapping throws NPE
- Issue #921: Datastore.ensureIndexes() breaks morphia
- Issue #923: EnsureIndexes() fails when my Entity contains Embedded List<HashMap<K, V>>
- Issue #935: Morphia does not uses registered Codec
- Issue #1156: Mapping Arrays of @reference(idOnly = true)
- Issue #1230: FindAndModify Default Behaviour
- Issue #1293: Generic Entity
- Issue #1350: Drop MongoIterable from Query's parent types
- Issue #1408: How to do projections with version 2.0.0-ALPHA2?
- Issue #1412: Full text score not working with projection
- Issue #1419: Fix javadoc errors
- Issue #1424: Missing dev.morphia.morphia:util:pom:2.0.0-BETA1
- Issue #1430: ClassCastException when retrieving entities with date-time fields and a load lifecycle listener
- Issue #1447: Aggregation broken in 2.0.0-BETA2
- Issue #1451: Sorting on tail is not allowed
DOCS
- Issue #1196: Missing compatibility table with mongo-driver versions
- Issue #1266: Update all documentation urls
- Issue #1269: add an @internal taglet
- Issue #1397: Update documentation
- Issue #1415: Add filter deprecation guides to query2.0 branch
- Issue #1419: Fix javadoc errors
- Issue #1420: Audit all new API elements
- Issue #1450: Add licence file in core jar
ENHANCEMENT
- Issue #22: Add @polymorphic [moved]
- Issue #364: Polymorphic lazy reference [moved]
- Issue #439: make Datasource accessible in @EntityListeners [moved]
- Issue #581: Support full constructors
- Issue #677: Add support for global value naming convention
- Issue #721: add the possibility to set a custom className field
- Issue #735: Query.order(String) API design, to overwrite values set in previous calls, is flawed
- Issue #749: [enhancement] Support the new driver API
- Issue #911: Aggregation pipeline elements improvements
- Issue #959: Add T merge(T entity) method
- Issue #993: Add support for $graphLookup aggregation stage
- Issue #994: Add support for $sortByCount aggregation stage
- Issue #995: Add support for $facet aggregation stage
- Issue #996: Add support for $bucket aggregation stage
- Issue #997: Add support for $bucketAuto aggregation stage
- Issue #998: Add support for $count aggregation stage
- Issue #999: Add support for $addFields aggregation stage
- Issue #1000: Add support for $replaceRoot aggregation stage
- Issue #1003: Add options to $unwind
- Issue #1004: Add support for bitwise query operators
- Issue #1005: $stdDev aggregation operator for standard deviation
- Issue #1008: add support for $lookup stage
- Issue #1010: Boolean aggregation expressions
- Issue #1011: Aggregation set expressions
- Issue #1012: Comparison expressions
- Issue #1013: Aggregation arithmetic expressions
- Issue #1014: Aggregation String expressions
- Issue #1015: Aggregation text expressions
- Issue #1016: Aggregation array expressions
- Issue #1017: Aggregation variable expressions
- Issue #1018: Aggregation literal expressions
- Issue #1019: Aggregation date expressions
- Issue #1020: Aggregation conditional expressions
- Issue #1021: Aggregation accumulators
- Issue #1022: Aggregation pipeline stages
- Issue #1121: Remove deprecated elements
- Issue #1122: Remove org.mongodb.morphia.query.Query#order(java.lang.String)
- Issue #1141: Remove EntityScanner
- Issue #1143: Remove methods exposing MorphiaIterator and MorphiaKeyIterator
- Issue #1229: Add support for $expr
- Issue #1256: Multi Document transaction support with Morphia
- Issue #1269: add an @internal taglet
- Issue #1272: Upgrade minimum JVM version to 11
- Issue #1275: remove QueryImpl#parseFieldsString from the public API
- Issue #1284: Remove MapReduce functionality
- Issue #1294: Remove support for snapshots and $isolate
- Issue #1298: Remove exists methods from Datastore
- Issue #1299: Deprecate getCount() methods in favor of Query.count()
- Issue #1300: Rename methods
- Issue #1301: explore replacements for com.mongodb.client.model.FindOptions
- Issue #1302: Add deprecated placeholders for old methods on *Datastore and Query
- Issue #1309: Deprecate Morphia's Geo wrappers in favor of the driver's
- Issue #1319: Please update to recent mongodb driver MongoClient interface
- Issue #1351: Replace all uses of DBObject with Document and remove all exposures of these types from the API where possible
- Issue #1352: Remove morphia logging code and migrate to slf4j
- Issue #1353: Update to use Codecs instead of current mapping code
- Issue #1354: Use MongoCollection rather than DBCollection
- Issue #1355: Add remove() to Query
- Issue #1356: Add update() to Query
- Issue #1359: add modify() to Query
- Issue #1360: add delete() to Query
- Issue #1364: Options classes should subclass the driver options classes
- Issue #1366: Replace ReflectionUtils
- Issue #1368: Override getCollectionName() is a must for some use cases
- Issue #1369: Map ID from Superclass
- Issue #1372: Delete @serialized and remove support
- Issue #1374: Remove @presave
- Issue #1377: Remove @notsaved
- Issue #1379: Drop returning instances/lists of Keys
- Issue #1388: JPA-like refresh() method to load fields from database into a pre-existing entity
- Issue #1390: Remove support for CodeWScope
- Issue #1392: Query size of embedded list
- Issue #1393: Move getCollection(Class) implementation from Mapper to Datastore
- Issue #1396: Update discriminator key/value to new defaults
- Issue #1397: Update documentation
- Issue #1398: Remove the date storage configuration item
- Issue #1409: Deprecate 'options' on Query in favor of FindOptions
- Issue #1411: 4.0 Java driver compatibility
- Issue #1415: Add filter deprecation guides to query2.0 branch
- Issue #1418: Rename @notsaved to @loadonly
- Issue #1420: Audit all new API elements
- Issue #1427: Pull remaining methods up from AdvancedDatastore
- Issue #1428: migrate Aggregation.merge() and .out()
- Issue #1429: Add specific options methods to RegexFilter
- Issue #1434: Deprecate
Query#execute()
in favor of#iterator()
- Issue #1435: Deprecate
Query#execute()
after BETA2 - Issue #1436: Deprecate Key and related methods
- Issue #1443: Merge Query#delete() and Query#remove()
- Issue #1444: Cascade the deprecations
- Issue #1446: Rework Query#update() and Query#modify()
EXPERIMENTAL
- Issue #581: Support full constructors