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