I have an entity that has field called 'group'. This field serves as a way to tie multiple entities together(it is like a reference field but not exactly in the way core uses it). Basically the entities in the same group are all variants of each other so they are tightly related. The value is either the ID of the entity or id of entity that the entity is a variant of(so there is always some "root" entity that is a source for the variants).
Anyway, what I am trying to do is to have the value to equal to entity id as default behavior. New entity will get ID only after it is saved into the storage and so in order to get the ID I have to wait for save() method and do the logic AFTER the fact. Currently I am using postSave() method in the entity to manually update the field data table and save the entity id as a value for this field.
It is working just fine but since RC1 the Drupal core has some advanced caching in it I am affraid this can become a problem in the future. So I am wondering how should I approach this but prevent saving the entity twice in a row?