Table of Contents

Attribute

Table

Database Table Entity On Key 5 Conversions On Key 5 Tables Other Entities stored in same Table
Transaction gen.attribute Attribute ConvertAttribute
stdAttributes

Columns

Property Db Table Db Column Db DataType Nullable Primary Key Joins
Code gen.attribute code character varying(50) False
CreatedByUserId gen.attribute created_by_user_id bigint False
CreatedByUserCode uam.user code character varying(50) False gen.attribute.created_by_user_id = uam.user.user_id
CreatedByUserFullName uam.user full_name character varying(200) False gen.attribute.created_by_user_id = uam.user.user_id
CreatedOn gen.attribute created_on timestamp without time zone False
IsActive gen.attribute is_active boolean False
ModifiedByUserId gen.attribute modified_by_user_id bigint False
ModifiedByUserCode uam.user code character varying(50) False gen.attribute.modified_by_user_id = uam.user.user_id
ModifiedByUserFullName uam.user full_name character varying(200) False gen.attribute.modified_by_user_id = uam.user.user_id
ModifiedOn gen.attribute modified_on timestamp without time zone False
PermissionTreeId gen.attribute permission_tree_id bigint False
PermissionTreeCode uam.permission_tree code text False gen.attribute.permission_tree_id = uam.permission_tree.permission_tree_id
PermissionTreeDescription uam.permission_tree description text True gen.attribute.permission_tree_id = uam.permission_tree.permission_tree_id
Version gen.attribute version integer False
Id gen.attribute attribute_id bigint False True
AllowAnyValue gen.attribute allow_any_value boolean False
DataType gen.attribute data_type system.dynamic_value_data_type False
DefaultAllowedValueId gen.attribute default_allowed_value_id bigint True
DefaultAllowedValueDescription gen.attribute_allowed_value description text True gen.attribute.default_allowed_value_id = gen.attribute_allowed_value.attribute_allowed_value_id
DefaultAllowedValueValue gen.attribute_allowed_value value system.dynamic_value False gen.attribute.default_allowed_value_id = gen.attribute_allowed_value.attribute_allowed_value_id
DefaultValue gen.attribute default_value system.dynamic_value True
Description gen.attribute description character varying(100) False
Explanation gen.attribute explanation text True
Notes gen.attribute notes text True
SequenceNumber gen.attribute sequence_number integer True

Enumerations

Mapping 1

Property Property Type Db Column Db Column Type Db Column Values
DataType DynamicValueType data_type system.dynamic_value_data_type String
Email
Integer
Long
Float
Currency
DateTime
Date
Time
Duration
Boolean

Composites

Mapping 1

Property Property Type Db Column Db Column Type
DefaultAllowedValueValue DbDynamicValue value system.dynamic_value
Composite Property Db Composite Column Property Type
Type type String
Email
Integer
Long
Float
Currency
DateTime
Date
Time
Duration
Boolean
Value value String

Mapping 2

Property Property Type Db Column Db Column Type
DefaultValue DbDynamicValue default_value system.dynamic_value
Composite Property Db Composite Column Property Type
Type type String
Email
Integer
Long
Float
Currency
DateTime
Date
Time
Duration
Boolean
Value value String

Queries

The list of example Attribute queries can be interpreted using the following legend:

Legend Description
Primary Table Alias The alias for the gen.attribute table in the query
Include References Include (true) or exclude (false) all lookup table joins in the query
Include Permissions Include (true) or exclude (false) the permission table join in the query to enforce or skip row-level security based on the permissions for the user

Query 1

Primary Table Alias Include References Include Permissions
_a False False
SELECT
    _a.code AS "Code",
    _a.created_by_user_id AS "CreatedByUserId",
    _a.created_on AS "CreatedOn",
    _a.is_active AS "IsActive",
    _a.modified_by_user_id AS "ModifiedByUserId",
    _a.modified_on AS "ModifiedOn",
    _a.permission_tree_id AS "PermissionTreeId",
    _a.version AS "Version",
    _a.attribute_id AS "Id",
    _a.allow_any_value AS "AllowAnyValue",
    _a.data_type AS "DataType",
    _a.default_allowed_value_id AS "DefaultAllowedValueId",
    _a.default_value AS "DefaultValue",
    _a.description AS "Description",
    _a.explanation AS "Explanation",
    _a.notes AS "Notes",
    _a.sequence_number AS "SequenceNumber"
FROM
    gen.attribute _a


Query 2

Primary Table Alias Include References Include Permissions
_a True False
SELECT
    _a.code AS "Code",
    _u.user_id AS "CreatedByUserId",
    _u.code AS "CreatedByUserCode",
    _u.full_name AS "CreatedByUserFullName",
    _a.created_on AS "CreatedOn",
    _a.is_active AS "IsActive",
    _u1.user_id AS "ModifiedByUserId",
    _u1.code AS "ModifiedByUserCode",
    _u1.full_name AS "ModifiedByUserFullName",
    _a.modified_on AS "ModifiedOn",
    _pt.permission_tree_id AS "PermissionTreeId",
    _pt.code AS "PermissionTreeCode",
    _pt.description AS "PermissionTreeDescription",
    _a.version AS "Version",
    _a.attribute_id AS "Id",
    _a.allow_any_value AS "AllowAnyValue",
    _a.data_type AS "DataType",
    _aav.attribute_allowed_value_id AS "DefaultAllowedValueId",
    _aav.description AS "DefaultAllowedValueDescription",
    _aav.value AS "DefaultAllowedValueValue",
    _a.default_value AS "DefaultValue",
    _a.description AS "Description",
    _a.explanation AS "Explanation",
    _a.notes AS "Notes",
    _a.sequence_number AS "SequenceNumber"
FROM
    gen.attribute _a
    JOIN uam.user _u ON _a.created_by_user_id = _u.user_id
    JOIN uam.user _u1 ON _a.modified_by_user_id = _u1.user_id
    JOIN uam.permission_tree _pt ON _a.permission_tree_id = _pt.permission_tree_id
    LEFT JOIN gen.attribute_allowed_value _aav ON _a.default_allowed_value_id = _aav.attribute_allowed_value_id


Query 3

Primary Table Alias Include References Include Permissions
_a False True
Parameter Name Data Type Value
@permission_user_id Bigint 500000000000
@permission_id Bigint 100100
WITH permission_tree_ids AS
(
    SELECT DISTINCT unnest(psd.permission_tree_ids) AS permission_tree_id FROM uam.user_permission up JOIN uam.permission_set_data psd ON up.permission_set_id = psd.permission_set_id WHERE up.user_id = @permission_user_id AND up.permission_id = @permission_id
)
SELECT
    _a.code AS "Code",
    _a.created_by_user_id AS "CreatedByUserId",
    _a.created_on AS "CreatedOn",
    _a.is_active AS "IsActive",
    _a.modified_by_user_id AS "ModifiedByUserId",
    _a.modified_on AS "ModifiedOn",
    _a.permission_tree_id AS "PermissionTreeId",
    _a.version AS "Version",
    _a.attribute_id AS "Id",
    _a.allow_any_value AS "AllowAnyValue",
    _a.data_type AS "DataType",
    _a.default_allowed_value_id AS "DefaultAllowedValueId",
    _a.default_value AS "DefaultValue",
    _a.description AS "Description",
    _a.explanation AS "Explanation",
    _a.notes AS "Notes",
    _a.sequence_number AS "SequenceNumber",
    _a.permission_tree_id AS "_a_permission_tree_id"
FROM
    gen.attribute _a
    JOIN permission_tree_ids permission_join ON _a.permission_tree_id = permission_join.permission_tree_id


Query 4

Primary Table Alias Include References Include Permissions
_a True True
Parameter Name Data Type Value
@permission_user_id Bigint 500000000000
@permission_id Bigint 100100
WITH permission_tree_ids AS
(
    SELECT DISTINCT unnest(psd.permission_tree_ids) AS permission_tree_id FROM uam.user_permission up JOIN uam.permission_set_data psd ON up.permission_set_id = psd.permission_set_id WHERE up.user_id = @permission_user_id AND up.permission_id = @permission_id
)
SELECT
    _a.code AS "Code",
    _u.user_id AS "CreatedByUserId",
    _u.code AS "CreatedByUserCode",
    _u.full_name AS "CreatedByUserFullName",
    _a.created_on AS "CreatedOn",
    _a.is_active AS "IsActive",
    _u1.user_id AS "ModifiedByUserId",
    _u1.code AS "ModifiedByUserCode",
    _u1.full_name AS "ModifiedByUserFullName",
    _a.modified_on AS "ModifiedOn",
    _pt.permission_tree_id AS "PermissionTreeId",
    _pt.code AS "PermissionTreeCode",
    _pt.description AS "PermissionTreeDescription",
    _a.version AS "Version",
    _a.attribute_id AS "Id",
    _a.allow_any_value AS "AllowAnyValue",
    _a.data_type AS "DataType",
    _aav.attribute_allowed_value_id AS "DefaultAllowedValueId",
    _aav.description AS "DefaultAllowedValueDescription",
    _aav.value AS "DefaultAllowedValueValue",
    _a.default_value AS "DefaultValue",
    _a.description AS "Description",
    _a.explanation AS "Explanation",
    _a.notes AS "Notes",
    _a.sequence_number AS "SequenceNumber",
    _a.permission_tree_id AS "_a_permission_tree_id",
    _u.permission_tree_id AS "_u_permission_tree_id",
    _u1.permission_tree_id AS "_u1_permission_tree_id",
    _aav.permission_tree_id AS "_aav_permission_tree_id"
FROM
    gen.attribute _a
    JOIN permission_tree_ids permission_join ON _a.permission_tree_id = permission_join.permission_tree_id
    JOIN uam.user _u ON _a.created_by_user_id = _u.user_id
    JOIN uam.user _u1 ON _a.modified_by_user_id = _u1.user_id
    JOIN uam.permission_tree _pt ON _a.permission_tree_id = _pt.permission_tree_id
    LEFT JOIN gen.attribute_allowed_value _aav ON _a.default_allowed_value_id = _aav.attribute_allowed_value_id