Документы ObjectBox предлагают использовать автоматически назначаемые идентификаторы long
для элементов, и даже есть некоторые проверки, основанные на этом:
По умолчанию идентификаторы объектов назначаются ObjectBox. Для каждого нового объекта ObjectBox назначит неиспользуемый идентификатор, который выше текущего самого высокого значения идентификатора, используемого в поле. Например, если в ящике есть два объекта с ID 1 и ID 100, следующему помещенному объекту будет присвоен ID 101.
http://objectbox.io/documentation/introduction/#Object_ID_assignment
Если у нас есть собственный ключ, мы можем добавить @Id(assignable = true)
, и он будет использовать данное поле в качестве идентификатора.
Однако я где-то читал, что это увеличивает нагрузку на производительность, и по возможности лучше использовать стандартные автоматически увеличивающиеся. Я не могу найти источник сейчас, поэтому кто-нибудь знает, можно ли использовать назначаемые идентификаторы для часто изменяемых объектов? Кроме того, ObjectBox как-то использует equals()
и hashCode()
?
Основная причина использования назначаемых идентификаторов для нас заключается в том, чтобы иметь возможность put
элементов использовать их естественные long
идентификаторы без ручного разрешения сопоставления.