Обекти за рефериране на съставен първичен ключ на JPA; JSF

както подсказва заглавието, имам съставен първичен ключ, който трябва да препраща към два обекта, за да мога да получа достъп до тях в JSF по-късно.

Класът трябва да изглежда така...

    @Entity
    public class Timetable {
        public static final String findAll = "Timetable.findAll";

        @Id
        @ManyToOne
        @JoinColumn(name = "lectureId")
        private Lecture lecture;

        @Id
        @ManyToOne
        @JoinColumn(name = "timeslotId")
        private Timeslot timeslot;

... така че по-късно мога да получа достъп до тези обекти в JSF по следния начин:

#{timetable.timeslot.timeslotId}

Въпреки това, glassfish сега се успокоява относно несъответстващите типове, тъй като lecture и timeslot са обекти, но препращат към първичен ключ от тип Long.

Има ли лесен трик за коригиране на това?

За допълнителна информация разгледах следните източници: http://docs.oracle.com/cd/E16439_01/doc.1013/e13981/cmp30cfg001.htm#BCGIGBEI

Благодаря предварително =)


person Micromonger    schedule 12.06.2015    source източник
comment
Тази връзка просто обяснява типичните @Embeddable и @IdClass анотации съответно, които могат да се използват за формиране на съставен първичен ключ. Тези Lecture и Timeslot съставни/сложни обекти изглеждат обекти, образуващи @ManyToOne връзка с Timetable. Как биха могли тогава да бъдат част от съставен първичен ключ във вашата RDBMS? Бихте могли обаче да имате отделно/обичайно поле за първичен ключ (некомпозитно) в таблицата на вашата база данни, запазвайки и двете релации такива, каквито са.   -  person Tiny    schedule 12.06.2015