MArtin
01/09/2023, 6:42 PMpackage ar.com.school.management.models.entity
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import jakarta.persistence.*
@Entity
data class Career(@Id
@GeneratedValue(strategy =
GenerationType.IDENTITY)
@Column(name = "career_id")
var id: Long?,
var name: String?,
@ManyToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
@JoinTable(name = "career_subject",
joinColumns = [JoinColumn(name = "career_id", referencedColumnName = "career_id")],
inverseJoinColumns = [JoinColumn(name = "subject_id", referencedColumnName = "subject_id")])
@JsonIgnoreProperties("subjectCareers")
var subjects: List<Subject>? = mutableListOf(),
@OneToMany(mappedBy = "career")
var students: List<Student>? = mutableListOf(),
@ManyToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
@JoinTable(name = "career_teacher",
joinColumns = [JoinColumn(name = "career_id", referencedColumnName = "career_id")],
inverseJoinColumns = [JoinColumn(name = "teacher_id", referencedColumnName = "teacher_id")])
@JsonIgnoreProperties("careers")
var teachers: List<Teacher>? = mutableListOf()) {
constructor(): this(null,null,null, null, null)
}