Простой тип атрибута#

Используется для непосредственного хранения в атрибуте значений разных типов данных.

Варианты использования#

  • текст ограниченной длины

  • UID

  • форматированная строка

Подключение#

  • описываем тип

    code: example_type
    name: Пример создания типа
    type: varchar
    
  • реализуем - ru.sbt.swtr.track.core.entity.type.CustomAttributeTypeEntity

  • аннотируем - ru.sbt.swtr.track.core.entity.type.CustomAttributeType

  • аннотируем - javax.persistence.Entity

Пример#

  • Entity

    @CustomAttributeType(code = "example_text", type = String.class)
    @Entity
    @NoArgsConstructor(access = AccessLevel.PROTECTED, force = true)
    @EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = true)
    public class ExampleCustomTypeEntity extends AbstractSimpleTypeEntity<String> {
        public ExampleCustomTypeEntity(final UnitAttributeEntity unitAttribute) {
            super(unitAttribute);
        }
    }
    
  • Holder

    public class CustomTypeEntityClassHolder implements CustomAttributeTypeEntityClassHolder {
        @Override
        public Collection<Class<? extends CustomAttributeTypeEntity>> getClasses() {
            return List.of(
                    ExampleCustomTypeEntity.class
            );
        }
    }