Как доказать, что 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
Вопрос: Есть ли лучший способ доказать, что класс сущности не должен быть окончательным? Разве это не жесткое правило, как в спецификации?