X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=portal-BE%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fportal%2Fdomain%2Fdb%2Fep%2FEpAppFunction.java;h=2c23c3d7dc30c9c5d860b47cba5d1233f9bf68ce;hb=ffd9af970318c1f5a0bad46d7aad5d4611414aae;hp=cae3b3b199e056ac343e8cf5e72be25776c85a5f;hpb=f71707238ebabd9911277af55673b1d42ac1495f;p=portal.git diff --git a/portal-BE/src/main/java/org/onap/portal/domain/db/ep/EpAppFunction.java b/portal-BE/src/main/java/org/onap/portal/domain/db/ep/EpAppFunction.java index cae3b3b1..2c23c3d7 100644 --- a/portal-BE/src/main/java/org/onap/portal/domain/db/ep/EpAppFunction.java +++ b/portal-BE/src/main/java/org/onap/portal/domain/db/ep/EpAppFunction.java @@ -41,29 +41,30 @@ package org.onap.portal.domain.db.ep; import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; +import java.time.LocalDateTime; +import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.IdClass; import javax.persistence.Index; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; +import javax.persistence.NamedQueries; +import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.validation.Valid; +import javax.validation.constraints.Digits; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; +import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.hibernate.validator.constraints.SafeHtml; -import org.onap.portal.domain.db.ep.EpAppFunction.EpAppFunctionId; +import org.onap.portal.domain.db.DomainVo; import org.onap.portal.domain.db.fn.FnApp; /* @@ -77,51 +78,90 @@ CREATE TABLE `ep_app_function` ( ) */ -@Table(name = "ep_app_function", indexes = {@Index(name = "fk_ep_app_function_app_id", columnList = "app_id")}) -@EqualsAndHashCode +@NamedQueries({ + @NamedQuery( + name = "EpAppFunction.getAppRoleFunctionList", + query = "from\n" + + " EpAppRoleFunction rf,\n" + + " EpAppFunction f\n" + + " where\n" + + " rf.fnRole.id = :roleId\n" + + " and rf.appId.id = :appId\n" + + " and rf.appId.id = f.appId.id\n" + + " and rf.epAppFunction.functionCd = f.functionCd" + ) +}) + +@Table(name = "ep_app_function", indexes = { + @Index(name = "fk_ep_app_function_app_id", columnList = "app_id"), + @Index(name = "fk_ep_app_id_function_cd", columnList = "app_id, function_cd", unique = true)}) + @Getter @Setter @Entity -@IdClass(EpAppFunctionId.class) @NoArgsConstructor @AllArgsConstructor -public class EpAppFunction { - @Id - @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) - @JoinColumn(name = "app_id") - @Valid - private FnApp appId; - @Id - @Column(name = "function_cd", length = 250, nullable = false) - @Size(max = 250) - @NotNull - @SafeHtml - private String functionCd; - @Column(name = "function_name", length = 250, nullable = false) - @Size(max = 250) - @NotNull - @SafeHtml - private String functionName; - @OneToMany( - targetEntity = EpAppRoleFunction.class, - mappedBy = "epAppFunction", - cascade = CascadeType.ALL, - fetch = FetchType.LAZY - ) - private List epAppRoleFunctions = new ArrayList<>(); +public class EpAppFunction extends DomainVo implements Serializable { + + @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) + @JoinColumn(name = "app_id", columnDefinition = "bigint") + @Valid + private FnApp appId; + @Column(name = "function_cd", length = 250, nullable = false) + @Size(max = 250) + @NotNull + @SafeHtml + private String functionCd; + @Column(name = "function_name", length = 250, nullable = false) + @Size(max = 250) + @NotNull + @SafeHtml + private String functionName; + + private Long roleId; + private String type; + @SafeHtml + private String action; + @SafeHtml + private String editUrl; + + @OneToMany( + targetEntity = EpAppRoleFunction.class, + mappedBy = "epAppFunction", + cascade = CascadeType.MERGE, + fetch = FetchType.LAZY + ) + private Set epAppRoleFunctions; + + public EpAppFunction(Long id, String code, String name, FnApp appId, String type, String action, String editUrl) { + super(); + super.setId(id); + this.functionCd = code; + this.functionName = name; + this.appId = appId; + this.type = type; + this.action = action; + this.editUrl = editUrl; + } - @Getter - @Setter - @EqualsAndHashCode - @NoArgsConstructor - @AllArgsConstructor - public static class EpAppFunctionId implements Serializable { - @Valid - private FnApp appId; - @Size(max = 250) - @NotNull - @SafeHtml - private String functionCd; - } + @Builder + public EpAppFunction(@Digits(integer = 11, fraction = 0) Long id, + LocalDateTime created, LocalDateTime modified, Long rowNum, Serializable auditUserId, + DomainVo createdId, DomainVo modifiedId, Set fnUsersCreatedId, + Set fnUsersModifiedId, @Valid FnApp appId, + @Size(max = 250) @NotNull @SafeHtml String functionCd, + @Size(max = 250) @NotNull @SafeHtml String functionName, Long roleId, String type, + @SafeHtml String action, @SafeHtml String editUrl, + Set epAppRoleFunctions) { + super(id, created, modified, rowNum, auditUserId, createdId, modifiedId, fnUsersCreatedId, fnUsersModifiedId); + this.appId = appId; + this.functionCd = functionCd; + this.functionName = functionName; + this.roleId = roleId; + this.type = type; + this.action = action; + this.editUrl = editUrl; + this.epAppRoleFunctions = epAppRoleFunctions; + } }