Проблемы с 3 внешними ключами в 1 таблице - PullRequest
0 голосов
/ 27 апреля 2019

Обычно я получаю сообщение об ошибке компиляции:

"Причина: 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)

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