package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
-import java.util.ArrayList;
import java.util.Collection;
-import java.util.List;
+import java.util.Set;
import java.util.stream.Collectors;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
-import javax.persistence.NamedNativeQueries;
-import javax.persistence.NamedNativeQuery;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
+import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
-import javax.validation.Valid;
import javax.validation.constraints.Digits;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.PastOrPresent;
import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.validator.constraints.SafeHtml;
import org.onap.portal.domain.db.cr.CrReportFileHistory;
import org.onap.portal.domain.db.ep.EpPersUserWidgetPlacement;
import org.onap.portal.domain.db.ep.EpUserRolesRequest;
import org.onap.portal.domain.db.ep.EpWidgetCatalogParameter;
import org.onap.portal.domain.dto.DomainVo;
-import org.onap.portalapp.portal.domain.DomainVo;
-import org.onap.portalapp.portal.domain.db.cr.CrReportFileHistory;
-import org.onap.portalapp.portal.domain.db.ep.EpPersUserAppManSort;
-import org.onap.portalapp.portal.domain.db.ep.EpPersUserWidgetPlacement;
-import org.onap.portalapp.portal.domain.db.ep.EpPersUserWidgetSel;
-import org.onap.portalapp.portal.domain.db.ep.EpUserNotification;
-import org.onap.portalapp.portal.domain.db.ep.EpUserRolesRequest;
-import org.onap.portalapp.portal.domain.db.ep.EpWidgetCatalogParameter;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
)
*/
-@NamedNativeQueries({
- @NamedNativeQuery(
- name = "getUsersByOrgUserId",
- query = "SELECT * FROM FnUser WHERE where org_user_id in :orgIds"
+@NamedQueries({
+ @NamedQuery(
+ name = "FnUser.getUserWithOrgUserId",
+ query = "FROM FnUser WHERE orgUserId = :orgId"),
+ @NamedQuery(
+ name = "FnUser.getActiveUsers",
+ query = "FROM FnUser WHERE activeYn = 'Y'"),
+ @NamedQuery(
+ name = "FnUser.getUsersByOrgIds",
+ query = "FROM FnUser WHERE orgUserId IN :orgIds"
)
})
-
@Table(name = "fn_user", indexes = {
@Index(name = "fn_user_address_id", columnList = "address_id"),
@Index(name = "fn_user_alert_method_cd", columnList = "alert_method_cd"),
uniqueConstraints = {
@UniqueConstraint(name = "fn_user_hrid", columnNames = "hrid"),
@UniqueConstraint(name = "fn_user_login_id", columnNames = "login_id")
+
})
-@NoArgsConstructor
-@AllArgsConstructor
+
@Getter
@Setter
@Entity
-public class FnUser extends DomainVo implements UserDetails {
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@DynamicUpdate
+@SequenceGenerator(name = "seq", initialValue = 1000, allocationSize = 100000)
+public class FnUser extends DomainVo implements UserDetails, Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.AUTO)
+ @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
@Column(name = "user_id", length = 11, nullable = false)
@Digits(integer = 11, fraction = 0)
private Long userId;
- @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
- @JoinColumn(name = "org_id", columnDefinition = "int(11) DEFAULT NULL")
- @Valid
+ @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+ @JoinColumn(name = "org_id")
private FnOrg orgId;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "manager_id")
- @Valid
private FnUser managerId;
- @Column(name = "first_name", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "first_name", length = 50)
@Size(max = 50)
@SafeHtml
private String firstName;
- @Column(name = "middle_name", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "middle_name", length = 50)
@Size(max = 50)
@SafeHtml
private String middleName;
- @Column(name = "last_name", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "last_name", length = 50)
@Size(max = 50)
@SafeHtml
private String lastName;
- @Column(name = "phone", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "phone", length = 25)
@Size(max = 25)
@SafeHtml
private String phone;
- @Column(name = "fax", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "fax", length = 25)
@Size(max = 25)
@SafeHtml
private String fax;
- @Column(name = "cellular", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "cellular", length = 25)
@Size(max = 25)
@SafeHtml
private String cellular;
- @Column(name = "email", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "email", length = 50)
@Size(max = 50)
@Email
@SafeHtml
private String email;
- @Column(name = "address_id", columnDefinition = "decimal(11,0) DEFAULT NULL")
+ @Column(name = "address_id")
@Digits(integer = 11, fraction = 0)
private Long addressId;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "alert_method_cd", columnDefinition = "varchar(10) DEFAULT NULL")
+ @JoinColumn(name = "alert_method_cd")
private FnLuAlertMethod alertMethodCd;
- @Column(name = "hrid", length = 20, columnDefinition = "varchar(20) DEFAULT NULL")
+ @Column(name = "hrid", length = 20)
@Size(max = 20)
@SafeHtml
private String hrid;
- @Column(name = "org_user_id", length = 20, columnDefinition = "varchar(20) DEFAULT NULL")
+ @Column(name = "org_user_id", length = 20)
@Size(max = 20)
@SafeHtml
private String orgUserId;
- @Column(name = "org_code", length = 30, columnDefinition = "varchar(30) DEFAULT NULL")
+ @Column(name = "org_code", length = 30)
@Size(max = 30)
@SafeHtml
private String org_code;
- @Column(name = "login_id", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "login_id", length = 25)
@Size(max = 25)
@SafeHtml
private String loginId;
- @Column(name = "login_pwd", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "login_pwd", length = 100)
@Size(max = 100)
@SafeHtml
private String loginPwd;
@Column(name = "last_login_date", nullable = false, columnDefinition = "datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()")
@PastOrPresent
protected LocalDateTime lastLoginDate;
- @Column(name = "active_yn", length = 1, columnDefinition = "character varying(1) default 'y'", nullable = false)
- @Size(max = 1)
- @SafeHtml
- @NotNull
- private String activeYn;
+ @Column(name = "active_yn", nullable = false)
+ private Boolean activeYn;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "created_id")
- @Valid
private FnUser createdId;
@Column(name = "created_date", columnDefinition = "datetime DEFAULT current_timestamp()", nullable = false)
@PastOrPresent
protected LocalDateTime createdDate;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "modified_id")
- @Valid
private FnUser modifiedId;
@Column(name = "modified_date", nullable = false, columnDefinition = "datetime default now()")
@PastOrPresent
protected LocalDateTime modifiedDate;
- @Column(name = "is_internal_yn", length = 1, columnDefinition = "character varying(1) default 'n'", nullable = false)
- @Size(max = 1)
- @SafeHtml
- @NotNull
- private String isInternalYn;
- @Column(name = "address_line_1", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "is_internal_yn", nullable = false, columnDefinition = "bit DEFAULT 0")
+ private Boolean isInternalYn;
+ @Column(name = "address_line_1", length = 100)
@Size(max = 100)
@SafeHtml
private String addressLine1;
- @Column(name = "address_line_2", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "address_line_2", length = 100)
@Size(max = 100)
@SafeHtml
private String addressLine2;
- @Column(name = "city", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "city", length = 50)
@Size(max = 50)
@SafeHtml
private String city;
- @Column(name = "state_cd", length = 3, columnDefinition = "varchar(3) DEFAULT NULL")
+ @Column(name = "state_cd", length = 3)
@Size(max = 3)
@SafeHtml
private String stateCd;
- @Column(name = "zip_code", length = 11, columnDefinition = "varchar(11) DEFAULT NULL")
+ @Column(name = "zip_code", length = 11)
@Size(max = 11)
@SafeHtml
private String zipCode;
- @Column(name = "country_cd", length = 3, columnDefinition = "varchar(3) DEFAULT NULL")
+ @Column(name = "country_cd", length = 3)
@Size(max = 3)
@SafeHtml
private String countryCd;
- @Column(name = "location_clli", length = 8, columnDefinition = "varchar(8) DEFAULT NULL")
+ @Column(name = "location_clli", length = 8)
@Size(max = 8)
@SafeHtml
private String locationClli;
- @Column(name = "org_manager_userid", length = 20, columnDefinition = "varchar(20) DEFAULT NULL")
+ @Column(name = "org_manager_userid", length = 20)
@Size(max = 20)
@SafeHtml
private String orgManagerUserId;
- @Column(name = "company", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "company", length = 100)
@Size(max = 100)
@SafeHtml
private String company;
- @Column(name = "department_name", length = 200, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "department_name", length = 200)
@Size(max = 200)
@SafeHtml
private String departmentName;
- @Column(name = "job_title", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "job_title", length = 100)
@Size(max = 100)
@SafeHtml
private String jobTitle;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "timezone", columnDefinition = "int(11) DEFAULT NULL")
- @Valid
+ @JoinColumn(name = "timezone")
private FnLuTimezone timezone;
- @Column(name = "department", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "department", length = 25)
@Size(max = 25)
@SafeHtml
private String department;
- @Column(name = "business_unit", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "business_unit", length = 25)
@Size(max = 25)
@SafeHtml
private String businessUnit;
- @Column(name = "business_unit_name", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "business_unit_name", length = 100)
@Size(max = 100)
@SafeHtml
private String businessUnitName;
- @Column(name = "cost_center", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "cost_center", length = 25)
@Size(max = 25)
@SafeHtml
private String cost_center;
- @Column(name = "fin_loc_code", length = 10, columnDefinition = "varchar(10) DEFAULT NULL")
+ @Column(name = "fin_loc_code", length = 10)
@Size(max = 10)
@SafeHtml
private String finLocCode;
- @Column(name = "silo_status", length = 10, columnDefinition = "varchar(10) DEFAULT NULL")
+ @Column(name = "silo_status", length = 10)
@Size(max = 10)
@SafeHtml
private String siloStatus;
- @Column(name = "language_id", length = 2, columnDefinition = "int(2) default 1", nullable = false)
- @Digits(integer = 2, fraction = 0)
- @NotNull
- private Long language_id;
- @Column(name = "is_guest", columnDefinition = "boolean default 0", nullable = false)
- @NotNull
- private boolean guest;
+ @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+ @JoinColumn(name = "language_id", nullable = false, columnDefinition = "int(11) DEFAULT 1")
+ @NotNull(message = "languageId must not be null")
+ private FnLanguage languageId;
+ @Column(name = "is_guest", nullable = false, columnDefinition = "bit DEFAULT 0")
+ @NotNull(message = "guest must not be null")
+ private Boolean guest;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "fnUserList")
- private List<CrReportFileHistory> crReportFileHistorie = new ArrayList<>();
+ private Set<CrReportFileHistory> crReportFileHistorie;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
- private List<FnRole> fnRoles = new ArrayList<>();
+ private Set<FnRole> fnRoles;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
- private List<FnMenuFunctional> fnRoleList = new ArrayList<>();
+ private Set<FnMenuFunctional> fnRoleList;
@OneToMany(
targetEntity = FnAuditLog.class,
mappedBy = "userId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<FnAuditLog> fnAuditLogs = new ArrayList<>();
+ private Set<FnAuditLog> fnAuditLogs;
@OneToMany(
targetEntity = FnUser.class,
mappedBy = "createdId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<FnUser> fnUsersCreatedId = new ArrayList<>();
+ private Set<FnUser> fnUsersCreatedId;
@OneToMany(
targetEntity = FnUser.class,
mappedBy = "managerId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<FnUser> fnUsersManagerId = new ArrayList<>();
+ private Set<FnUser> fnUsersManagerId;
@OneToMany(
targetEntity = FnUser.class,
mappedBy = "modifiedId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<FnUser> fnUsersModifiedId = new ArrayList<>();
+ private Set<FnUser> fnUsersModifiedId;
@OneToMany(
targetEntity = EpUserRolesRequest.class,
mappedBy = "userId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<EpUserRolesRequest> epUserRolesRequests = new ArrayList<>();
+ private Set<EpUserRolesRequest> epUserRolesRequests;
@OneToMany(
targetEntity = FnPersUserAppSel.class,
mappedBy = "userId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<FnPersUserAppSel> persUserAppSels = new ArrayList<>();
- @OneToMany(
- targetEntity = EpPersUserAppManSort.class,
- mappedBy = "userId",
- cascade = CascadeType.ALL,
- fetch = FetchType.LAZY
- )
- private List<EpPersUserAppManSort> epPersUserAppManSorts = new ArrayList<>();
+ private Set<FnPersUserAppSel> persUserAppSels;
@OneToMany(
targetEntity = EpWidgetCatalogParameter.class,
mappedBy = "userId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<EpWidgetCatalogParameter> epWidgetCatalogParameters = new ArrayList<>();
+ private Set<EpWidgetCatalogParameter> epWidgetCatalogParameters;
@OneToMany(
targetEntity = EpPersUserWidgetPlacement.class,
mappedBy = "userId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<EpPersUserWidgetPlacement> epPersUserWidgetPlacements = new ArrayList<>();
+ private Set<EpPersUserWidgetPlacement> epPersUserWidgetPlacements;
@OneToMany(
targetEntity = EpPersUserWidgetSel.class,
mappedBy = "userId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<EpPersUserWidgetSel> epPersUserWidgetSels = new ArrayList<>();
+ private Set<EpPersUserWidgetSel> epPersUserWidgetSels;
@OneToMany(
targetEntity = FnUserRole.class,
mappedBy = "userId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<FnUserRole> fnUserRoles = new ArrayList<>();
+ private Set<FnUserRole> fnUserRoles;
@OneToMany(
targetEntity = EpUserNotification.class,
mappedBy = "userId",
cascade = CascadeType.ALL,
fetch = FetchType.LAZY
)
- private List<EpUserNotification> epUserNotifications = new ArrayList<>();
+ private Set<EpUserNotification> epUserNotifications;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {