Обычно я получаю сообщение об ошибке компиляции:
"Причина: org.hibernate.AnnotationException: внешний ключ, ссылающийся на PlayingInScreen из Ticket, имеет неправильный номер столбца. Должно быть 3"
Я не понимаю, что это значит, и я работаю над этим последние 3 часа, и это чертовски смущает меня.
import java.io.Serializable
import javax.persistence.*
@Entity
@Table(name = "Ticket")
data class Ticket(
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "TicketId")
val ticketId: Long = -1,
@Id
@ManyToOne
@JoinColumn(name = "ScreenId")
val screenId: PlayingInScreen,
@Id
@ManyToOne
@JoinColumn(name = "TheaterId")
val theaterId: PlayingInScreen,
@ManyToOne
@JoinColumn(name = "StartTime", nullable = false)
val startTime: PlayingInScreen,
@ManyToOne
@JoinColumn(name = "StaffId")
val staffId: Staff,
@Column(name = "Price", nullable = false)
val price: Double = 0.0,
@Id
@Column(name = "SellingTimeStamp")
val sellingTimeStamp: Long = 0) : Serializable
import java.io.Serializable
import javax.persistence.*
@Entity
@Table(name = "PlayingInScreen")
data class PlayingInScreen(
@Id
@ManyToOne
@JoinColumn(name = "ScreenId")
val screenId: Screen,
@Id
@ManyToOne
@JoinColumn(name = "TheaterId")
val theaterId: Screen,
@ManyToOne
@JoinColumn(name = "MovieId")
val movieId: Movie,
@Id
@Column(name = "StartTime", nullable = false)
val startTime: Long = 0) : Serializable {
@OneToMany(mappedBy = "startTime")
private val startTimes: Set<Ticket> = emptySet()
@OneToMany(mappedBy = "theaterId")
private val theaterIds: Set<Ticket> = emptySet()
@OneToMany(mappedBy = "screenId")
private val screenIds: Set<Ticket> = emptySet()
}
Требования к проекту: PlayingInScreen: ScreenId Char(8) Pk, Fk (экран) Theatre Char (8) Pk, Fk (экран)
Билет: TheatreId Char (8) Pk, Fk (PlayingInScreen) ScreenId Char (8) Pk, Fk (PlayingInScreen)Дата начала, время не равно нулю, Fk (PlayingInScreen)