Как доказать, что JPA Enity не должна быть последним классом с Hibernate 5

JSR 338: Спецификация JavaTM Persistence API 2.1> 2.1 Класс сущности определяет:

Класс сущности не должен быть окончательным. Никакие методы или постоянные переменные экземпляра класса сущности не могут быть окончательными.

Итак, я попробовал с Hibernate 5.2.18.Final чтобы доказать это, установив класс сущности как final:

@EqualsAndHashCode
@Getter
@Setter
@Entity
public final class City {
    @Id
    @SequenceGenerator(name="city_sequence", sequenceName="city_seq", initialValue=0, allocationSize=25)
    @GeneratedValue(strategy=SEQUENCE, generator="city_sequence")
    private int id;
    @Column(length=20, nullable=false)
    private String city;
    @ManyToOne(fetch = FetchType.LAZY)
    private Province province;
}

Однако результат превзошел мои ожидания: можно сгенерировать соответствующую таблицу и создать новый экземпляр City могут быть сохранены в базе данных, то есть мой код доказывает, что класс сущности может быть final

Вопрос: Есть ли лучший способ доказать, что класс сущности не должен быть окончательным? Разве это не жесткое правило, как в спецификации?

0 ответов

Другие вопросы по тегам