У меня есть следующая таблица:
@Entity(name = 'STUDENT')
class Student {
@Id
@Column(name = 'STUDENT_ID')
String studentId
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "id.student")
Set<Disabilities> disabilities = []
}
@Entity(name = 'STUDENT_DISABILITY')
class Disability {
@EmbeddedId
DisabilityId id
@Nullable
@Column(name = 'MOD_DT')
LocalDateTime modifiedDate
}
@Embeddable
class DisabilityId implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = 'STUDENT_ID')
Student student
@Column(name = 'DISABILITY_CD')
String disabilityCode
}
Это все работает нормально, но я пытаюсь соединить новую таблицу Disability_info с таблицей Disability. Это таблица Disability_info:
@Entity
@Table(name = 'DISABILITY_INFO')
class DisabilityInfo {
@Id
@Column(name = 'DISABILITY_CD')
String id
@Column(name = 'DISABILITY_NAME')
String disabilityName
@Column(name = 'DISABILITY_DESC')
String disabilityDesc
}
Проблема, с которой я столкнулся, заключается в том, что первичный ключ DisabilityInfo является частью составного ключа класса Disability. Все, что я хочу, это ниже с sql:
SELECT * FROM DISABILITY a INNER JOIN DISABILITY_INFO b on a.DISABILITY_CD = b.DISABILITY_CD
Кто-нибудь может пролить свет на то, как мне этого добиться?
Заранее спасибо.