Jpa часть составного сопоставления ключей - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть следующая таблица:

@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

Кто-нибудь может пролить свет на то, как мне этого добиться?

Заранее спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

Я понял это. Требовалось много к одному объединению. Первоначально я думал, что у одного инвалида должно быть одно описание, поэтому существует соотношение 1: 1.

Тем не менее, на самом деле, есть многократные нарушения, которые ссылаются на одно и то же описание, что означает, что на самом деле это отношение многие к одному!

@Entity(name = 'STUDENT_DISABILITY')
class Disability {

@EmbeddedId
DisabilityId id

@Nullable
@Column(name = 'MOD_DT')
LocalDateTime modifiedDate


@ManyToOne
@JoinColumn(name = 'DISABILITY_ID, insertable = false, updatable = false)
DisabilityInfo disabilityInfo

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...