У меня есть UserAuthenticationEntity, происходящий от BaseEntity.
@MappedSuperclass
public class BaseEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_seq_generator")
@SequenceGenerator(name = "user_seq_generator", sequenceName = "user_seq", allocationSize = 1)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
@Entity
@Table(name = "user_authentication")
public class UserAuthenticationEntity extends BaseEntity {
private String username;
private String password;
public UserAuthenticationEntity(String username, String password){
this.username = username;
this.password = password;
}
...
...
}
Все будущие сущности будут расширять класс BaseEntity.
Возможно ли, что все объекты наследуют свойство id от класса BaseEntity, но имеют отдельные последовательности для генерации первичных ключей?
Я знаю, что это запутанный сценарий, но я думаю, что наличие базового класса сущностей — отличное место для определения свойства id для всех классов сущностей, но невозможность использовать разные последовательности — своего рода нарушение условий сделки. Не уверен, что это можно сделать.
Также приветствуется любой альтернативный/лучший дизайн для классов сущностей.