Избегайте дублирования кода Sonarqube в аннотациях классов - PullRequest
0 голосов
/ 07 октября 2019

Отказ от ответственности: это НЕ еще один вопрос, спрашивающий, как отключить дублирование кода в Sonarqube!

У меня есть приложение JPA с этим базовым классом сущности:

@MappedSuperclass
public class AbstractBaseEntity {
    @Id
    @org.hibernate.annotations.Type(type = "uuid-char")
    @Column(name = "ID", length = 36, nullable = false, updatable = false, unique = true)
    private UUID id;

    @Column(name = "CREATOR", length = 32, nullable = false, updatable = false)
    private String creator;

    @Column(name = "CREATION_DATE", nullable = false, updatable = false)
    @Temporal(TemporalType.TIMESTAMP)
    private Date creationDate;

    @Column(name = "UPDATER", length = 32)
    private String updater;

    @Column(name = "UPDATE_DATE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date updateDate;

    ...
}

Кроме того, у меня есть много сущностей, полученных из этой базовой сущности.

Поскольку существует соглашение о том, что каждое имя таблицы базы данных и имена их столбцов должны начинаться с одного и того же префикса, все наши сущности имеют @AttributeOverridesаннотации, подобные этим:

@Entity
@Table(name = "CF_MY_ENTITY")
@AttributeOverride(name = "id", column = @Column(name = "CF_ID", length = 36, nullable = false, updatable = false, unique = true))
@AttributeOverride(name = "creator", column = @Column(name = "CF_CREATOR", length = 32, nullable = false, updatable = false))
@AttributeOverride(name = "creationDate", column = @Column(name = "CF_CREATION_DATE", nullable = false, updatable = false))
@AttributeOverride(name = "updater", column = @Column(name = "CF_UPDATER", length = 32))
@AttributeOverride(name = "updateDate", column = @Column(name = "CF_UPDATE_DATE"))
public class MyEntity extends AbstractBaseEntity {
   ...
}

В этом примере префикс CF_, все другие объекты имеют разные префиксы.

Sonarqube теперь помечает эти аннотации как дубликаты кодовых блоков, даже если ониразличаются по именам столбцов.

Можно ли как-то реорганизовать код и избавиться от этих дублирующих блоков кода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...