In my java I have a generic class (could be abstract or non-abstract either way, but does NOT map to a table in the database). It has one or more variables that are common to every class. Example:
public class GenericThing {
private Date createDate;
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date dt) {
createDate = dt;
}
}
This is useful because literally every table in the database has the column CREATE_DATE.
In this case the right inheritance strategy to use in Hibernate is "table per concrete class". But, this is "bad", they say, because each table requires that identical column and if you change that column name (CREATE_DATE) you have to change every table's column name. Well, obviously this is true, but what is the alternative? Obviously I do want every table in the database to store the Create Date, but I don't want every object in the entire database to be in one table, so that precludes (as far as I know) all the other mapping strategies, right?