Hibernate not recognize properties defined in Interface

code below:

public interface IBaseEntity {

	String getfId();
	
	void setfId(String fId);
	
	Map<String, Object> getFeatureMap();

	default void setFeatureValue(String key, Object value) {
		getFeatureMap().put(key, value);
	}

	default Object getFeatureValue(String key) {
		return getFeatureMap().get(key);
	}
	
}

public interface ITimeMark extends IBaseEntity {
    final String fCreateTime = "f_create_time";
    final String fModifyTime = "f_modify_time";

	@Column(name="f_create_time")
	@Access(AccessType.PROPERTY)
	default Date getfCreateTime() {
		return (Date)getFeatureMap().get(ITimeMark.fCreateTime);
	}

	default void setfCreateTime(Date fCreateTime) {
		this.getFeatureMap().put(ITimeMark.fCreateTime, fCreateTime);
	}

	@Column(name="f_modify_time")
	@Access(AccessType.PROPERTY)
	default Date getfModifyTime() {
		return (Date)getFeatureMap().get(ITimeMark.fModifyTime);
	}

	default void setfModifyTime(Date fModifyTime) {
		this.getFeatureMap().put(ITimeMark.fModifyTime, fModifyTime);
	}
	
}

@MappedSuperclass
public class BaseEntity implements IBaseEntity, Serializable {

	private static final long serialVersionUID = 1L;

	@Id()
	@Column(name="f_id", length=32)
	@Access(AccessType.PROPERTY)
	protected String fId;
	
	public String getfId() {
		if(!StringUtils.hasText(fId)) {
			fId = IDGenerate.generate();
		}
		return fId;
	}

	public void setfId(String fId) {
		if(StringUtils.hasText(fId)) {
			this.fId = fId;
		}
	}

	@Transient
	private Map<String, Object> featureMap = null;
	
	public Map<String, Object> getFeatureMap() {
		if(featureMap == null) {
			featureMap = new HashMap<String, Object>();
		}
		return featureMap;
	}
}
@Entity
public class TestModel extends BaseEntity implements ITimeMark  {

}

Column 【createTime】 and 【modifyTime】 not generated。
hibernate version 6.3.1

You can’t have persistent attribute mappings in interfaces. Move these mappings into a @MappedSuperclass.

The java class can’t be inherit from two or more superclass。
I’m think of doing something after the annotation process, and add these fields in interface。
or
Will @MappedSuperInterface be supported in the future release?

No, and you IMO shouldn’t try to use SPIs to force this model onto Hibernate ORM. One possible way forward is to create a special subtype of BaseEntity which implement the ITimeMark interface and adds these persistent attributes e.g.

public interface ITimeMark extends IBaseEntity {
	final String fCreateTime = "f_create_time";
	final String fModifyTime = "f_modify_time";

	Date getfCreateTime();
	void setfCreateTime(Date fCreateTime);
	Date getfModifyTime();
	void setfModifyTime(Date fModifyTime);
}
@MappedSuperclass
public class TimeMarkBaseEntity extends BaseEntity implements ITimeMark {

	@Override
	@Column(name="f_create_time")
	@Access(AccessType.PROPERTY)
	public Date getfCreateTime() {
		return (Date)getFeatureMap().get(ITimeMark.fCreateTime);
	}

	@Override
	public void setfCreateTime(Date fCreateTime) {
		this.getFeatureMap().put(ITimeMark.fCreateTime, fCreateTime);
	}

	@Override
	@Column(name="f_modify_time")
	@Access(AccessType.PROPERTY)
	public Date getfModifyTime() {
		return (Date)getFeatureMap().get(ITimeMark.fModifyTime);
	}

	@Override
	public void setfModifyTime(Date fModifyTime) {
		this.getFeatureMap().put(ITimeMark.fModifyTime, fModifyTime);
	}
}

@Entity
public class TestModel extends TimeMarkBaseEntity {
}