I am having trouble mapping my database domain model to the program entities in one case where the entity is essentially a join table (a period) which combines two other ent
I was able to create the following mapping for my case (scala code) and could totally throw away the @Embeddable class:
@Entity
@Table(name = "payment_order_item", schema = "pg")
@IdClass(classOf[PaymentOrderItem])
final class PaymentOrderItem extends Serializable{
@Id
@ManyToOne
@JoinColumn(name = "order_item_id", referencedColumnName = "id")
var orderItem: OrderItem = _
@Id
@ManyToOne
@JoinColumn(name = "payment_id", referencedColumnName = "id")
var payment: Payment = _
}
So the following should work for you then
@Entity
@Table(name = "period")
@IdClass(Period.class)
public class Period extends Serializable{
@Id
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "day_idday", referencedColumnName = "id", nullable = false)
private Day day;
@Id
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "timeslot_idtimeslot", referencedColumnName = "id", nullable = false)
private Timeslot timeslot;
//constructors, getters, setters, hashcode, and equals
}