In such case we can take advantage of @MappedSuperclass annotation to achieve inheritance in hibernate annotation.
Example :
Super class BaseTable that contains common column definitions:
@MappedSuperclass
public abstract class BaseTable {
@Id
@GeneratedValue
@Column(name = "id")
private int id;
@Column(name = "dflag")
private int dFlag;
@Column(name = "lastmodifieddate")
private Date lastModifiedDate;
//other required columns
....
}
Extending it to use in other tables :
@Entity
@Table(name = "LoginUser")
public class LoginUser extends BaseTable implements Serializable{
private static final long serialVersionUID = -1920053571118011085L;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Column(name = "invalidCount")
private int invalidCount;
//other required tables
...
}
It works !