How to override a version field to be a Basic property field?

We have a base class (MappedSuperclass) containing a Version field which is inherited by all our Entities. But now we want some of our classes to be non-versioned, so what is the best way to over-ride the version field as a Basic Property?


public class Base {
    @Column(name = "VERSION", columnDefinition = "bigint default -1")
    public long getVersion() {
        return version;
// other base properties

Entity A, we don’t want to it to be versioned

public class EntityA extends Base {
// extra fields for EntityA

It’s not possible. This is simply how inheritance works. If you don’t want EntityA to be versioned, then don’t extend Base. If you still want to extend Base though for other reasons, then you will have to create a new subclass e.g. VersionedBase and make sure all other classes extend that type.