[ОБНОВЛЕНО] Я работаю над проектом со следующими таблицами, которые используют один и тот же ключ:
Er Диаграмма:
Как видите, есть первичный ключ, полученный из Table_1 для Table 2 и Table_3, и table_4 также использует его. Затем я пытаюсь отобразить их, используя jpa ...
@Entity
@Table(name = "TABLE_1")
public class EntParceiroPrepago implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "PK_CD_PARTNER")
private Long id;
Второй класс представляет собой составной PK для Table_2.
@Embeddable
public class CategoriaPrepagoId implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "PK_CD_CATEGORY")
private Long codigo;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PK_FK_CD_PARTNER", referencedColumnName = "PK_CD_PARTNER")
private EntParceiroPrepago parceiro;
Третий класс представляет собой составной PK для Table_3.
@Embeddable
public class FornecedorPrepagoId implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "PK_CD_PROVIDER")
private Long codigo;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PK_FK_CD_PARTNER", referencedColumnName = "PK_CD_PARTNER")
private EntParceiroPrepago parceiro;
Четвертый класс также является составным PK для Table_4, , но существует конфликт, потому что мне нужен PK_FK_CD_PARTNER . Не удается найти ожидаемую вторичную таблицу: таблица_2 недоступна для br.com.banese.aut.models.identificadores.ProdutoPrepagoId
@Embeddable
public class ProdutoPrepagoId implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "CP_CD_PRODUTO")
private Long codigo;
@ManyToOne
@JoinColumn(name = "PK_FK_CD_PROVIDER", referencedColumnName = "PK_CD_PROVIDER")
@JoinColumn(name = "PK_FK_CD_PARTNER", referencedColumnName = "PK_FK_CD_PARTNER")
private EntFornecedorPrepago fornecedor;
@ManyToOne
@JoinColumn(name = "PK_FK_CD_CATEGORY", referencedColumnName = "PK_CD_CATEGORY")
@JoinColumn(name = "PK_FK_CD_PARTNER", referencedColumnName = "PK_FK_CD_PARTNER")
private EntCategoriaPrepago categoria;
Извините, что не опубликовала реальную диаграмму ER и имена, потому что у меня могут возникнуть проблемы в моей работе. Я надеюсь, что мой вопрос ясен, и заранее спасибо за любую помощь.