Annotation Interface ImmutableObject.Insignificant

Enclosing class:
ImmutableObject

@Documented @Retention(RUNTIME) @Target(FIELD) public static @interface ImmutableObject.Insignificant
Indicates that the field does not take part in the immutability contract.

Certain fields currently get modified by hibernate and there is nothing we can do about it. As well as violating immutability, this breaks hashing and equality comparisons, so we mark these fields with this annotation to exclude them from most operations.