import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
+import javax.persistence.ColumnResult;
+import javax.persistence.ConstructorResult;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.ManyToOne;
import javax.persistence.NamedNativeQueries;
import javax.persistence.NamedNativeQuery;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.SqlResultSetMapping;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.validation.Valid;
import javax.validation.constraints.Digits;
import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import org.onap.portal.domain.dto.ecomp.UserRole;
/*
CREATE TABLE `fn_user_role` (
*/
@NamedNativeQueries({
- @NamedNativeQuery(
- name = "FnUserRole.retrieveUserRoleOnUserIdAndRoleIdAndAppId",
- query = "select * from FnUserRole where user_id= :userId"
- + " and role_id= :roleId"
- + " and app_id= :appId"),
- @NamedNativeQuery(
- name = "FnUserRole.retrieveCachedAppRolesForUser",
- query = "select * from FnUserRole where user_id= :userId"
- + " and user_id= :userId"
- + " and app_id= :appId")
+ @NamedNativeQuery(
+ name = "FnUserRole.retrieveUserRoleOnUserIdAndRoleIdAndAppId",
+ query = "FROM FnUserRole where userId= :userId"
+ + " and role_id= :roleId"
+ + " and app_id= :appId"),
+ @NamedNativeQuery(
+ name = "FnUserRole.retrieveCachedAppRolesForUser",
+ query = "FROM FnUserRole where userId= :userId"
+ + " and userId= :userId"
+ + " and app_id= :appId"),
+ @NamedNativeQuery(
+ name = "FnUserRole.isSuperAdmin",
+ query = "SELECT"
+ + " userId.id as userId,"
+ + " userId.org_user_id as orgUserId,"
+ + " userrole.ROLE_ID as roleId,"
+ + " userrole.APP_ID as appId"
+ + " FROM"
+ + " fn_user_role userrole"
+ + " INNER JOIN fn_user user ON user.USER_ID = userrole.USER_ID"
+ + " WHERE"
+ + " user.org_user_id = :orgUserId"
+ + " AND userrole.ROLE_ID =:roleId"
+ + " AND userrole.APP_ID =:appId",
+ resultSetMapping = "UserRole",
+ resultClass = UserRole.class
+ )
+})
+
+@SqlResultSetMapping(
+ name = "UserRole",
+ classes = {
+ @ConstructorResult(
+ targetClass = UserRole.class,
+ columns = {
+ @ColumnResult(name = "userId", type = Long.class),
+ @ColumnResult(name = "orgUserId", type = String.class),
+ @ColumnResult(name = "roleId", type = Long.class),
+ @ColumnResult(name = "appId", type = Long.class)
+ }
+ )
+ }
+)
+
+@NamedQueries({
+ @NamedQuery(
+ name = "FnUserRole.getAdminUserRoles",
+ query = "FROM FnUserRole "
+ + " WHERE userId.id = :userId "
+ + " AND roleId.id = :roleId "
+ + " AND fnAppId.id = :appId"),
+ @NamedQuery(
+ name = "FnUserRole.retrieveByAppIdAndUserId",
+ query = "from FnUserRole where fnAppId.id =:appId and userId.id =:userId"
+ ),
+ @NamedQuery(
+ name = "FnUserRole.retrieveByAppIdAndRoleId",
+ query = "from FnUserRole where fnAppId.id =:appId and roleId.id =:roleId"
+ ),
+ @NamedQuery(
+ name = "FnUserRole.retrieveByUserIdAndRoleId",
+ query = "from FnUserRole where userId.id =:userId and roleId.id =:roleId"
+ )
})
@Table(
- name = "fn_user_role",
- indexes = {
- @Index(name = "fn_user_role_role_id", columnList = "role_id"),
- @Index(name = "fn_user_role_user_id", columnList = "user_id"),
- @Index(name = "fk_fn_user__ref_178_fn_app_idx", columnList = "app_id")},
- uniqueConstraints = {
- @UniqueConstraint(name = "fn_user_role_id", columnNames = {"role_id", "user_id", "app_id"})
- })
+ name = "fn_user_role",
+ indexes = {
+ @Index(name = "fn_user_role_role_id", columnList = "role_id"),
+ @Index(name = "fn_user_role_user_id", columnList = "user_id"),
+ @Index(name = "fk_fn_user__ref_178_fn_app_idx", columnList = "fn_App_Id")},
+ uniqueConstraints = {
+ @UniqueConstraint(name = "fn_user_role_id", columnNames = {"role_id", "user_id", "fn_App_Id"})
+ })
@NoArgsConstructor
@AllArgsConstructor
-
+@Builder
@Getter
@Setter
@Entity
public class FnUserRole implements Serializable {
-
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id", columnDefinition = "int(11) auto_increment")
- private Long id;
- @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "user_id")
- @Valid
- private FnUser userId;
- @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "role_id")
- @Valid
- private FnRole roleId;
- @Column(name = "priority", length = 4, columnDefinition = "decimal(4,0) DEFAULT NULL")
- @Digits(integer = 4, fraction = 0)
- private Long priority;
- @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
- @JoinColumn(name = "app_Id")
- @Valid
- private FnApp appId;
+ @Id
+ @SequenceGenerator(name = "portal_generator", sequenceName = "portal_generator", initialValue = 1000)
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @Column(name = "id", columnDefinition = "int(11) auto_increment")
+ private Long id;
+ @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
+ @JoinColumn(name = "user_id", columnDefinition = "bigint")
+ @Valid
+ private FnUser userId;
+ @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
+ @JoinColumn(name = "role_id", columnDefinition = "bigint")
+ @Valid
+ private FnRole roleId;
+ @Column(name = "priority", length = 4, columnDefinition = "decimal(4,0) DEFAULT NULL")
+ @Digits(integer = 4, fraction = 0)
+ private Long priority;
+ @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.LAZY)
+ @JoinColumn(name = "fn_App_Id", columnDefinition = "bigint")
+ @Valid
+ private FnApp fnAppId;
}
\ No newline at end of file