package org.beesden.shop.model; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.OrderBy; import javax.persistence.Table; @Entity @Table(name = "bees_menu") public class Menu extends ModelDefault { private static final long serialVersionUID = 1L; @OneToOne @JoinColumn(name = "categoryId") private Category category; @OneToMany(fetch = FetchType.EAGER, mappedBy = "menu") @OrderBy("position") private Set<Menu> children; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "parentId") private Menu menu; @OneToOne @JoinColumn(name = "pageId") private Page page; @Column(name = "position") private Integer position; public Category getCategory() { return category; } public Set<Menu> getChildren() { return children; } public Menu getMenu() { return menu; } public Page getPage() { return page; } public Integer getPosition() { return position; } public void setCategory(Category category) { this.category = category; } public void setChildren(Set<Menu> children) { this.children = children; } public void setMenu(Menu menu) { this.menu = menu; } public void setPage(Page page) { this.page = page; } public void setPosition(Integer position) { this.position = position; } }