package com.jasamedika.medifirst2000.entities; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.OneToMany; import javax.persistence.OrderBy; import javax.persistence.Table; import org.hibernate.annotations.NotFound; import org.hibernate.annotations.NotFoundAction; import com.fasterxml.jackson.annotation.JsonIgnore; import com.jasamedika.medifirst2000.base.BaseMaster; import com.jasamedika.medifirst2000.helper.Caption; @Entity @Table(name = "ObjekModulAplikasi_S") public class ObjekModulAplikasi extends BaseMaster { /** * */ private static final long serialVersionUID = -4478308018473778656L; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="public.objekmodulaplikasi_m_id_seq") @javax.persistence.SequenceGenerator( name="public.objekmodulaplikasi_m_id_seq", sequenceName="public.objekmodulaplikasi_m_id_seq", allocationSize=1 ) @Column(name = "id") protected Integer id; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } // @NotNull(message = "Kd Objek Modul Aplikasi tidak boleh kosong") @Column(name = "KdObjekModulAplikasi", nullable = false, length = 6) @Caption(value = "Kode Modul Aplikasi") private String kdObjekModulAplikasi; public String getKdObjekModulAplikasi() { return kdObjekModulAplikasi; } public void setKdObjekModulAplikasi(String kdObjekModulAplikasi) { this.kdObjekModulAplikasi = kdObjekModulAplikasi; } @Column(name = "ObjekModulAplikasi", nullable = true , length = 200) @Caption(value="Objek Modul Aplikasi") private String objekModulAplikasi; public String getObjekModulAplikasi() { return objekModulAplikasi; } public void setObjekModulAplikasi(String objekModulAplikasi) { this.objekModulAplikasi = objekModulAplikasi; } @Column(name = "Fungsi", nullable = true , length = 500) @Caption(value="Fungsi") private String fungsi; public String getFungsi() { return fungsi; } public void setFungsi(String fungsi) { this.fungsi = fungsi; } @Column(name = "AlamatUrlForm", nullable = true , length = 100) @Caption(value="Alamat Url Form") private String alamatUrlForm; public String getAlamatUrlForm() { return alamatUrlForm; } public void setAlamatUrlForm(String alamatUrlForm) { this.alamatUrlForm = alamatUrlForm; } @Column(name = "Keterangan", nullable = true , length = 500) @Caption(value="Keterangan") private String keterangan; public String getKeterangan() { return keterangan; } public void setKeterangan(String keterangan) { this.keterangan = keterangan; } @Column(name = "NoUrut") private Integer noUrut; public Integer getNoUrut() { return noUrut; } public void setNoUrut(Integer noUrut) { this.noUrut = noUrut; } ///////////////////// // Many To Many Relationship //////////////////// @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "MapObjekModulAplikasiToModulAplikasi_S", joinColumns = @JoinColumn(name = "objekModulAplikasiId"), inverseJoinColumns = @JoinColumn(name = "modulAplikasiId")) @JsonIgnore private List modulAplikasi = new ArrayList<>(); public List getModulAplikasi() { return modulAplikasi; } public void setModulAplikasi(List modulAplikasi) { this.modulAplikasi = modulAplikasi; } ///////////////////// // Link Back Keys //////////////////// @Column(name = "KdObjekModulAplikasiHead", insertable=false, updatable=false, nullable=true) private Integer kdObjekModulAplikasiHead; public Integer getKdObjekModulAplikasiHead() { return kdObjekModulAplikasiHead; } public void setKdObjekModulAplikasiHead(Integer kdObjekModulAplikasiHead) { this.kdObjekModulAplikasiHead = kdObjekModulAplikasiHead; } @NotFound(action = NotFoundAction.IGNORE) @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true, targetEntity = ObjekModulAplikasi.class) @JoinColumn(name="KdObjekModulAplikasiHead") @OrderBy("noUrut") private Set children = new HashSet<>(); public Set getChildren() { return children; } public void setChildren(Set children) { this.children = children; } }