TABLE_PER_CLASS 전략을 사용하여 상속을 만들려고하지만 각 테이블마다 다른 기본 키를 갖고 싶습니다.다른 기본 키를 사용하여 최대 절전 모드
나는 수백만 개의 인스턴스를 가진 하나의 클래스 레지스터를 가지며,이 인스턴스 중 일부는 "특별"하며 해당 열과 추가 열에 대해 다른 규칙을가집니다. 나는 하나의 고유 한 열을했습니다 때문에 id 속성을 필요가없는 기본 레지스터
@MappedSuperclass
public abstract class Register {
@Id
@Column(nullable = false, unique = true, updatable = false)
private Long userId;
private Date checked;
@Column(nullable = false)
private RegisterState tipo;
}
@Entity
@AttributeOverrides({ @AttributeOverride(name = "userId", column = @Column(nullable = false, unique = false, updatable = false)) })
public class PotencialRegister extends Register implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(length = 64, nullable = false, unique = false)
private String referer;
}
하지만, 열이 고유하지 전문 기업에 대한 그래서 나는 여분의 속성을 추가했다.
create table PotencialRegister (
id integer not null,
userId bigint not null,
checked datetime(6),
tipo integer not null,
referer varchar(64) not null,
primary key (id, userId)
)
create table Register (
userId bigint not null,
checked datetime(6),
tipo integer not null,
primary key (userId)
)
열 잘하며 schama 내가 원하는,하지만 내가 좋아하는 것 :
문제는 최대 절전 모드가 (생성 된 스키마가) 복합 기본 키 생성에 부모 ID를 사용하고 있다는 점이다 PotencialRegister 기본 키에서 "id"멤버를 제거합니다.
아래의 답변에 제공된 문제가 계속 표시 되니? – Ravik