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