У меня есть две таблицы. Один имеет первичный ключ, а другой - составной ключ.
TableA:
@Entity
@Table(name = "TableA")
public class TableA {
@Id
@Column(name = "myId")
private Long id;
@Column(name = "myName")
private String name;
@Column(name = "myRegion")
private String regionName;
}
Составной ключ для таблицы B:
@Embeddable
public class CompositePK implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "myId", insertable=false, updatable=false)
private Long myId;
@Column(name = "secondaryId")
private String secondaryId;
}
TableB:
@Entity
@Table(name = "TableB")
public class TableB {
@EmbeddedId
private CompositePK compositePK;
@Column(name = "Data")
private String regulationText;
}
Теперь я хочу реализовать запрос
select * from TableA tableA
inner join TableB tableB
on tableA.myId=tableB.myId
where tableB.myId = 1;
Я попробовал приведенный ниже фрагмент в Таблице B (соединение один к одному).
@OneToOne(cascade = CascadeType.ALL)
@JoinTable(name = "TableA", inverseJoinColumns = @JoinColumn(name = "myId", referencedColumnName = "myId"))
private TableA tableA;
Но там написано, что неверный столбец secondId. Фиг с этим за день. Невозможно объединить таблицу с первичным ключом из составного ключа. Любая помощь будет оценена.