public void put ( @ NotNull final PersistentStoreTransaction txn , final long localId , @ NotNull final ByteIterable value , @ Nullable final ByteIterable oldValue , final int propertyId , @ NotNull final ComparableValueType type ) { final Store valueIdx = getOrCreateValueIndex ( txn , propertyId ) ; final ByteIterable key = PropertyKey . propertyKeyToEntry ( new PropertyKey ( localId , propertyId ) ) ; final Transaction envTxn = txn . getEnvironmentTransaction ( ) ; primaryStore . put ( envTxn , key , value ) ; final ByteIterable secondaryValue = LongBinding . longToCompressedEntry ( localId ) ; boolean success ; if ( oldValue == null ) { success = allPropsIndex . put ( envTxn , IntegerBinding . intToCompressedEntry ( propertyId ) , secondaryValue ) ; } else { success = deleteFromStore ( envTxn , valueIdx , secondaryValue , createSecondaryKeys ( store . getPropertyTypes ( ) , oldValue , type ) ) ; } if ( success ) { for ( final ByteIterable secondaryKey : createSecondaryKeys ( store . getPropertyTypes ( ) , value , type ) ) { valueIdx . put ( envTxn , secondaryKey , secondaryValue ) ; } } checkStatus ( success , "Failed to put" ) ; }
Setter for property value . Doesn t affect entity version and doesn t invalidate any of the cached entity iterables .