33 lines
985 B
Kotlin
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()
|
|
}
|