Class MongoDBConverter.UpdateBuilder

  • Enclosing class:
    MongoDBConverter

    public class MongoDBConverter.UpdateBuilder
    extends Object
    Update list builder to prevent several updates of the same field.

    This happens if two operations act on two fields where one is a prefix of the other.

    Example: Cannot update 'mylist.0.string' and 'mylist' at the same time (error 16837)

    Since:
    5.9.5
    • Field Detail

      • set

        protected final org.bson.Document set
      • unset

        protected final org.bson.Document unset
      • push

        protected final org.bson.Document push
      • pull

        protected final org.bson.Document pull
      • inc

        protected final org.bson.Document inc
      • update

        protected org.bson.Document update
      • prefixKeys

        protected Set<String> prefixKeys
    • Constructor Detail

      • UpdateBuilder

        public UpdateBuilder()
    • Method Detail

      • processDelta

        protected void processDelta​(Delta delta,
                                    String prefix)
      • newUpdate

        protected void newUpdate()
      • checkForConflict

        protected void checkForConflict​(String key)
        Checks if the key conflicts with one of the previous keys.

        A conflict occurs if one key is equals to or is a prefix of the other.

      • conflictKeys

        protected boolean conflictKeys​(String key,
                                       List<String> subkeys)
      • getPrefixKeys

        protected List<String> getPrefixKeys​(String key)
        return a list of parents key

        foo.0.bar -> [foo, foo.0, foo.0.bar]