sodalive-backend-spring-boot/src/main/kotlin/kr/co/vividnext/sodalive/menu/Menu.kt

33 lines
985 B
Kotlin

package kr.co.vividnext.sodalive.menu
import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.member.MemberRole
import javax.persistence.CascadeType
import javax.persistence.Column
import javax.persistence.Entity
import javax.persistence.EnumType
import javax.persistence.Enumerated
import javax.persistence.FetchType
import javax.persistence.JoinColumn
import javax.persistence.ManyToOne
import javax.persistence.OneToMany
@Entity
data class Menu(
@Column(nullable = false)
val title: String,
@Column(nullable = false)
val route: String,
@Enumerated(value = EnumType.STRING)
val roles: MemberRole,
val orders: Int,
val isActive: Boolean
) : BaseEntity() {
@ManyToOne(fetch = FetchType.LAZY, cascade = [CascadeType.ALL])
@JoinColumn(name = "parent_id", nullable = true)
var parent: Menu? = null
@OneToMany(mappedBy = "parent", fetch = FetchType.EAGER)
var children: MutableList<Menu> = mutableListOf()
}