[AB-62] adding server id to more tables for easier joins and fixing structure at more places

This commit is contained in:
Sheldan
2021-02-08 01:58:35 +01:00
parent 1352fac40f
commit ea12d67e5f
46 changed files with 188 additions and 150 deletions

View File

@@ -63,6 +63,9 @@
<column name="enabled" type="BOOLEAN"/>
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
<column name="server_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="command_id" type="BIGINT">
<constraints nullable="false"/>
</column>
@@ -71,6 +74,7 @@
</column>
</createTable>
<addForeignKeyConstraint baseColumnNames="group_id" baseTableName="channel_group_command" constraintName="fk_channel_group_command_channel_group" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel_group" validate="true"/>
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="channel_group_command" constraintName="fk_channel_group_command_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
<addForeignKeyConstraint baseColumnNames="command_id" baseTableName="channel_group_command" constraintName="fk_channel_group_command_command" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="command" validate="true"/>
<sql>
DROP TRIGGER IF EXISTS channel_group_command_update_trigger ON channel_group_command;

View File

@@ -66,54 +66,30 @@
CREATE TRIGGER command_in_server_insert_trigger BEFORE INSERT ON command_in_server FOR EACH ROW EXECUTE PROCEDURE insert_trigger_procedure();
</sql>
</changeSet>
<changeSet author="Sheldan" id="command_in_server_immune_roles-table">
<createTable tableName="command_in_server_immune_roles">
<column name="command_in_server_command_in_server_id" type="BIGINT">
<changeSet author="Sheldan" id="command_in_server_immune_role-table">
<createTable tableName="command_in_server_immune_role">
<column name="command_in_server_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="immune_roles_id" type="BIGINT">
<column name="role_id" type="BIGINT">
<constraints nullable="false"/>
</column>
</createTable>
<addForeignKeyConstraint baseColumnNames="command_in_server_command_in_server_id" baseTableName="command_in_server_immune_roles" constraintName="fk_command_immune_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="command_in_server_id" referencedTableName="command_in_server" validate="true"/>
<addForeignKeyConstraint baseColumnNames="immune_roles_id" baseTableName="command_in_server_immune_roles" constraintName="fk_immune_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
<addForeignKeyConstraint baseColumnNames="command_in_server_id" baseTableName="command_in_server_immune_role" constraintName="fk_command_immune_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="command_in_server_id" referencedTableName="command_in_server" validate="true"/>
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="command_in_server_immune_role" constraintName="fk_immune_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="command_in_server_allowed_roles-table">
<createTable tableName="command_in_server_allowed_roles">
<column name="command_in_server_command_in_server_id" type="BIGINT">
<changeSet author="Sheldan" id="command_in_server_allowed_role-table">
<createTable tableName="command_in_server_allowed_role">
<column name="command_in_server_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="allowed_roles_id" type="BIGINT">
<column name="role_id" type="BIGINT">
<constraints nullable="false"/>
</column>
</createTable>
<addForeignKeyConstraint baseColumnNames="command_in_server_command_in_server_id" baseTableName="command_in_server_allowed_roles" constraintName="fk_command_allowed_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="command_in_server_id" referencedTableName="command_in_server" validate="true"/>
<addForeignKeyConstraint baseColumnNames="allowed_roles_id" baseTableName="command_in_server_allowed_roles" constraintName="fk_role_allowed_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
</changeSet>
<changeSet author="Sheldan" id="command-fk_command_feature">
</changeSet>
<changeSet author="Sheldan" id="command_in_server-command_in_server_immune_roles">
</changeSet>
<changeSet author="Sheldan" id="command_in_server-command_in_server_allowed_roles">
</changeSet>
<changeSet author="Sheldan" id="command_in_server_immune_roles-command_in_server_allowed_roles">
</changeSet>
<changeSet author="Sheldan" id="command-fk_command_module">
</changeSet>
<changeSet author="Sheldan" id="command_in_server-fk_command_command">
</changeSet>
<changeSet author="Sheldan" id="command_in_server_allowed_roles-fk_immune_role_role">
</changeSet>
<changeSet author="Sheldan" id="command_in_server-fk_command_server">
</changeSet>
<changeSet author="Sheldan" id="command_triggers">
</changeSet>
<changeSet author="Sheldan" id="command_in_server_triggers">
<addForeignKeyConstraint baseColumnNames="command_in_server_id" baseTableName="command_in_server_allowed_role" constraintName="fk_command_allowed_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="command_in_server_id" referencedTableName="command_in_server" validate="true"/>
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="command_in_server_allowed_role" constraintName="fk_role_allowed_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
</changeSet>
</databaseChangeLog>

View File

@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.core.command.models.database;
import dev.sheldan.abstracto.core.models.database.AChannelGroupCommand;
import dev.sheldan.abstracto.core.models.database.AFeature;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@@ -7,6 +8,7 @@ import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.List;
@Entity
@Table(name = "command")
@@ -14,6 +16,7 @@ import java.time.Instant;
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Cacheable
@EqualsAndHashCode
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@@ -23,17 +26,17 @@ public class ACommand implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@Getter
@Setter
@JoinColumn(name = "module_id", nullable = false)
private AModule module;
@Getter
@Setter
@ManyToOne
@OneToMany(mappedBy = "command", fetch = FetchType.LAZY)
private List<AChannelGroupCommand> channelGroupCommands;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "feature_id", nullable = false)
private AFeature feature;

View File

@@ -34,15 +34,21 @@ public class ACommandInAServer implements Serializable {
@JoinColumn(name = "server_id", nullable = false)
private AServer serverReference;
@ManyToMany(fetch = FetchType.LAZY)
@ManyToMany
@JoinTable(
name = "command_in_server_allowed_role",
joinColumns = @JoinColumn(name = "command_in_server_id", referencedColumnName = "command_in_server_id"),
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
@Getter
@JoinColumn(name = "allowed_role_id")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<ARole> allowedRoles;
@ManyToMany(fetch = FetchType.LAZY)
@ManyToMany
@JoinTable(
name = "command_in_server_immune_role",
joinColumns = @JoinColumn(name = "command_in_server_id", referencedColumnName = "command_in_server_id"),
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
@Getter
@JoinColumn(name = "immune_role_id")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<ARole> immuneRoles;

View File

@@ -14,6 +14,7 @@ import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@@ -21,22 +22,23 @@ public class AChannelGroup implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "group_name")
@Setter
private String groupName;
@ManyToOne(fetch = FetchType.LAZY)
@Setter
@JoinColumn(name = "server_id", nullable = false)
private AServer server;
@ManyToOne(fetch = FetchType.LAZY)
@Setter
@JoinColumn(name = "group_type_id")
private ChannelGroupType channelGroupType;
@OneToMany(mappedBy = "group", fetch = FetchType.LAZY)
private List<AChannelGroupCommand> channelGroupCommands;
@Column(name = "created")
private Instant created;

View File

@@ -24,12 +24,16 @@ public class AChannelGroupCommand implements Serializable {
@Column(name = "command_in_group_id")
private Long commandInGroupId;
@OneToOne(fetch = FetchType.LAZY)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "command_id", nullable = false)
@Setter
private ACommand command;
@OneToOne(fetch = FetchType.LAZY)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="server_id")
private AServer server;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "group_id", nullable = false)
@Setter
private AChannelGroup group;

View File

@@ -13,34 +13,31 @@ import java.time.Instant;
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AConfig implements Serializable {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
@Column(name = "name")
private String name;
@Column
@Setter
@Column(name = "string_value")
private String stringValue;
@Column
@Setter
@Column(name = "double_value")
private Double doubleValue;
@Column
@Setter
@Column(name = "long_value")
private Long longValue;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "server_id", nullable = false)
@Getter
@Setter
private AServer server;
@Column(name = "created")

View File

@@ -11,6 +11,8 @@ import java.util.List;
@Entity
@Table(name="feature_flag")
@Builder
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@@ -20,30 +22,21 @@ public class AFeatureFlag implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter
@Column(name = "id")
public Long id;
@ManyToOne(fetch = FetchType.LAZY)
@Getter
@Setter
@JoinColumn(name = "server_id", nullable = false)
private AServer server;
@Getter
@Setter
@OneToOne
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "feature_id", nullable = false)
private AFeature feature;
@Getter
@Setter
@OneToMany(fetch = FetchType.LAZY, mappedBy = "featureFlag")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AFeatureMode> modes;
@Getter
@Setter
@Column(name = "enabled")
private boolean enabled;

View File

@@ -10,6 +10,8 @@ import java.time.Instant;
@Entity
@Table(name="feature_mode")
@Builder
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@@ -18,31 +20,22 @@ import java.time.Instant;
public class AFeatureMode implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter
@Column(name = "id")
public Long id;
@Getter
@Setter
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "feature_flag_id", nullable = false)
private AFeatureFlag featureFlag;
@Getter
@Setter
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "feature_mode_id", nullable = false)
private DefaultFeatureMode featureMode;
@Getter
@Setter
@OneToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "server_id", nullable = false)
private AServer server;
@Column(name = "enabled")
@Getter
@Setter
private Boolean enabled;
@Column(name = "created")

View File

@@ -25,7 +25,7 @@ public class DefaultFeatureFlag implements Serializable {
@Getter
@Setter
@OneToOne
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "feature_id", nullable = false)
private AFeature feature;

View File

@@ -26,7 +26,7 @@ public class DefaultFeatureMode implements Serializable {
@Getter
@Setter
@OneToOne
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "feature_id", nullable = false)
private AFeature feature;