У меня есть две таблицы
CREATE TABLE public.account (
id uuid NOT NULL,
"name" varchar(255) NULL,
CONSTRAINT account_pkey PRIMARY KEY (id)
);
CREATE TABLE public.account_ext (
id uuid NOT NULL,
external_account_type varchar(255) NOT NULL,
external_account_id varchar(255) NOT NULL,
account_entity_id uuid NULL,
CONSTRAINT account_ext_pkey PRIMARY KEY (id, external_account_type, external_account_id)
FOREIGN KEY (id) REFERENCES account (id)
);
Я хотел бы сопоставить их с использованием требований JPA
- при создании учетной записи с account_ext все учетные записи ext получат учетную запись i = автоматически увеличенный идентификатор 2. объединение 3 полей в account_ext будет уникальным ограничением
это то, что я пытался сделать без успеха
@Entity
@Data
@Table(name = "account")
@EqualsAndHashCode
public class AccountEntity extends BaseEntity{
@Column
private String name;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "accountEntity")
private Set<ExternalAccountEntity> externalAccounts = new HashSet<>();
}
@Entity
@Data
@Accessors(chain = true)
@Table(name = "account_ext")
public class ExternalAccountEntity {
@EmbeddedId private ExternalAccountEntityId externalAccountEntityId;
@ToString.Exclude
@EqualsAndHashCode.Exclude
@ManyToOne(fetch = FetchType.LAZY)
private AccountEntity accountEntity;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Embeddable
public class ExternalAccountEntityId implements Serializable {
private static final long serialVersionUID = -8173857210615808268L;
@Column private UUID id;
@Column private String externalAccountId;
@Enumerated(EnumType.STRING)
private ExternalAccountType externalAccountType;
}
может кто-нибудь мне помочь с этим