Remove schema generation related annotations in Jpa layer (#2837)
* Remove schema generation related annotations in Jpa layer Signed-off-by: strailov <Stanislav.Trailov@bosch.io> * Update hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * forgotten foreign key annotations removed Signed-off-by: strailov <Stanislav.Trailov@bosch.io> * remove missed foreign key annotations Signed-off-by: strailov <Stanislav.Trailov@bosch.io> * foreign key from autoConfirmation Signed-off-by: strailov <Stanislav.Trailov@bosch.io> --------- Signed-off-by: strailov <Stanislav.Trailov@bosch.io> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
5c6718995b
commit
e6367d0b0c
@@ -14,10 +14,8 @@ import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.EmbeddedId;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.MapsId;
|
||||
@@ -47,17 +45,13 @@ public class DistributionSetTypeElement implements Serializable {
|
||||
|
||||
@MapsId("dsType")
|
||||
@ManyToOne(optional = false)
|
||||
@JoinColumn(
|
||||
name = "distribution_set_type", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_ds_type_element_distribution_set_type"))
|
||||
@JoinColumn(name = "distribution_set_type", nullable = false, updatable = false)
|
||||
private JpaDistributionSetType dsType;
|
||||
|
||||
@Getter
|
||||
@MapsId("smType")
|
||||
@ManyToOne(optional = false)
|
||||
@JoinColumn(
|
||||
name = "software_module_type", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_ds_type_element_software_module_type"))
|
||||
@JoinColumn(name = "software_module_type", nullable = false, updatable = false)
|
||||
private JpaSoftwareModuleType smType;
|
||||
|
||||
@Setter
|
||||
|
||||
@@ -28,8 +28,6 @@ import jakarta.persistence.Convert;
|
||||
import jakarta.persistence.Converter;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.NamedAttributeNode;
|
||||
@@ -59,13 +57,7 @@ import org.eclipse.hawkbit.repository.model.Target;
|
||||
/**
|
||||
* JPA implementation of {@link Action}.
|
||||
*/
|
||||
@Table(
|
||||
name = "sp_action",
|
||||
indexes = {
|
||||
@Index(name = "sp_idx_action_01", columnList = "tenant,distribution_set"),
|
||||
@Index(name = "sp_idx_action_02", columnList = "tenant,target,active"),
|
||||
@Index(name = "sp_idx_action_prim", columnList = "tenant,id")
|
||||
})
|
||||
@Table(name = "sp_action")
|
||||
@NamedEntityGraphs({
|
||||
@NamedEntityGraph(name = "Action.all", attributeNodes = {
|
||||
@NamedAttributeNode(value = "target", subgraph = "target.ds"),
|
||||
@@ -87,16 +79,14 @@ public class JpaAction extends AbstractJpaTenantAwareBaseEntity implements Actio
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
||||
@JoinColumn(
|
||||
name = "distribution_set", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_action_distribution_set"))
|
||||
name = "distribution_set", nullable = false, updatable = false)
|
||||
@NotNull
|
||||
private JpaDistributionSet distributionSet;
|
||||
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
||||
@JoinColumn(
|
||||
name = "target", updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_action_target"))
|
||||
name = "target", updatable = false)
|
||||
@NotNull
|
||||
private JpaTarget target;
|
||||
|
||||
@@ -136,15 +126,12 @@ public class JpaAction extends AbstractJpaTenantAwareBaseEntity implements Actio
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(
|
||||
name = "rollout_group", updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_action_rollout_group"))
|
||||
name = "rollout_group", updatable = false)
|
||||
private JpaRolloutGroup rolloutGroup;
|
||||
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(
|
||||
name = "rollout", updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_action_rollout"))
|
||||
@JoinColumn(name = "rollout", updatable = false)
|
||||
private JpaRollout rollout;
|
||||
|
||||
// a cron expression to be used for scheduling.
|
||||
|
||||
@@ -17,13 +17,10 @@ import java.util.Optional;
|
||||
|
||||
import jakarta.persistence.CollectionTable;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Convert;
|
||||
import jakarta.persistence.ElementCollection;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.NamedAttributeNode;
|
||||
@@ -42,10 +39,7 @@ import org.eclipse.hawkbit.repository.model.ActionStatus;
|
||||
* Entity to store the status for a specific action.
|
||||
*/
|
||||
@NoArgsConstructor // JPA default constructor
|
||||
@Table(name = "sp_action_status", indexes = {
|
||||
@Index(name = "sp_idx_action_status_02", columnList = "tenant,action,status"),
|
||||
@Index(name = "sp_idx_action_status_prim", columnList = "tenant,id")
|
||||
})
|
||||
@Table(name = "sp_action_status")
|
||||
@NamedEntityGraph(name = "ActionStatus.withMessages", attributeNodes = { @NamedAttributeNode("messages") })
|
||||
@Entity
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@@ -63,9 +57,7 @@ public class JpaActionStatus extends AbstractJpaTenantAwareBaseEntity implements
|
||||
private long timestamp;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
||||
@JoinColumn(
|
||||
name = "action", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_action_status_action"))
|
||||
@JoinColumn(name = "action", nullable = false, updatable = false)
|
||||
@NotNull
|
||||
private JpaAction action;
|
||||
|
||||
@@ -81,10 +73,7 @@ public class JpaActionStatus extends AbstractJpaTenantAwareBaseEntity implements
|
||||
@ElementCollection(fetch = FetchType.LAZY, targetClass = String.class)
|
||||
@CollectionTable(
|
||||
name = "sp_action_status_messages",
|
||||
joinColumns = @JoinColumn(
|
||||
name = "action_status", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_action_status_messages_action_status")),
|
||||
indexes = { @Index(name = "fk_action_status_messages_action_status", columnList = "action_status") })
|
||||
joinColumns = @JoinColumn(name = "action_status", nullable = false))
|
||||
@Column(name = "detail_message", length = MESSAGE_ENTRY_LENGTH, nullable = false)
|
||||
private List<String> messages;
|
||||
|
||||
|
||||
@@ -13,11 +13,8 @@ import java.io.Serial;
|
||||
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
@@ -37,11 +34,7 @@ import org.eclipse.hawkbit.repository.model.SoftwareModule;
|
||||
@NoArgsConstructor // Default constructor needed for JPA entities.
|
||||
@Setter
|
||||
@Getter
|
||||
@Table(name = "sp_artifact",
|
||||
indexes = {
|
||||
@Index(name = "sp_idx_artifact_01", columnList = "tenant,software_module"),
|
||||
@Index(name = "sp_idx_artifact_02", columnList = "tenant,sha1_hash"),
|
||||
@Index(name = "sp_idx_artifact_prim", columnList = "tenant,id") })
|
||||
@Table(name = "sp_artifact")
|
||||
@Entity
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@SuppressWarnings("squid:S2160")
|
||||
@@ -52,8 +45,7 @@ public class JpaArtifact extends AbstractJpaTenantAwareBaseEntity implements Art
|
||||
|
||||
@ManyToOne(optional = false, cascade = { CascadeType.PERSIST }, fetch = FetchType.LAZY)
|
||||
@JoinColumn(
|
||||
name = "software_module", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_artifact_software_module"))
|
||||
name = "software_module", nullable = false, updatable = false)
|
||||
private JpaSoftwareModule softwareModule;
|
||||
|
||||
@Column(name = "provided_file_name", length = 256, updatable = false)
|
||||
|
||||
@@ -10,10 +10,8 @@
|
||||
package org.eclipse.hawkbit.repository.jpa.model;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
@@ -37,9 +35,7 @@ public class JpaAutoConfirmationStatus extends AbstractJpaTenantAwareBaseEntity
|
||||
|
||||
// actually it is OneToOne - but lazy loading is not supported for OneToOne (at least for hibernate 6.6.2)
|
||||
@ManyToOne(optional = false, fetch = FetchType.LAZY)
|
||||
@JoinColumn(
|
||||
name = "target", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_conf_status_target"))
|
||||
@JoinColumn(name = "target", nullable = false)
|
||||
private JpaTarget target;
|
||||
|
||||
@Column(name = "initiator", length = USERNAME_FIELD_LENGTH)
|
||||
|
||||
@@ -20,12 +20,9 @@ import java.util.Set;
|
||||
|
||||
import jakarta.persistence.CollectionTable;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.ElementCollection;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.JoinTable;
|
||||
import jakarta.persistence.ManyToMany;
|
||||
@@ -34,7 +31,6 @@ import jakarta.persistence.MapKeyColumn;
|
||||
import jakarta.persistence.NamedAttributeNode;
|
||||
import jakarta.persistence.NamedEntityGraph;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import lombok.Getter;
|
||||
@@ -63,11 +59,7 @@ import org.springframework.core.annotation.Order;
|
||||
@Getter
|
||||
@ToString(callSuper = true)
|
||||
@Entity
|
||||
@Table(name = "sp_distribution_set",
|
||||
uniqueConstraints = { @UniqueConstraint(columnNames = { "name", "version", "tenant" }, name = "uk_distribution_set") },
|
||||
indexes = {
|
||||
@Index(name = "sp_idx_distribution_set_01", columnList = "tenant,deleted"),
|
||||
@Index(name = "sp_idx_distribution_set_prim", columnList = "tenant,id") })
|
||||
@Table(name = "sp_distribution_set")
|
||||
@NamedEntityGraph(name = "DistributionSet.detail",
|
||||
attributeNodes = { @NamedAttributeNode("modules"), @NamedAttributeNode("tags"), @NamedAttributeNode("type") })
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@@ -80,36 +72,25 @@ public class JpaDistributionSet
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = false, targetEntity = JpaDistributionSetType.class)
|
||||
@JoinColumn(
|
||||
name = "ds_type", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_distribution_set_ds_type"))
|
||||
@JoinColumn(name = "ds_type", nullable = false, updatable = false)
|
||||
@NotNull
|
||||
private DistributionSetType type;
|
||||
|
||||
@ManyToMany(targetEntity = JpaSoftwareModule.class, fetch = FetchType.LAZY)
|
||||
@JoinTable(
|
||||
name = "sp_ds_sm",
|
||||
joinColumns = {
|
||||
@JoinColumn(
|
||||
name = "ds_id", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_ds_sm_ds_id")) },
|
||||
inverseJoinColumns = {
|
||||
@JoinColumn(
|
||||
name = "sm_id", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_ds_sm_sm_id")) })
|
||||
joinColumns = { @JoinColumn(name = "ds_id", nullable = false) },
|
||||
inverseJoinColumns = { @JoinColumn(name = "sm_id", nullable = false) })
|
||||
private Set<SoftwareModule> modules = new HashSet<>();
|
||||
|
||||
@ManyToMany(targetEntity = JpaDistributionSetTag.class)
|
||||
@JoinTable(
|
||||
name = "sp_ds_tag",
|
||||
joinColumns = {
|
||||
@JoinColumn(
|
||||
name = "ds", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_ds_tag_ds")) },
|
||||
@JoinColumn(name = "ds", nullable = false) },
|
||||
inverseJoinColumns = {
|
||||
@JoinColumn(
|
||||
name = "tag", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_ds_tag_tag")) })
|
||||
name = "tag", nullable = false) })
|
||||
private Set<DistributionSetTag> tags = new HashSet<>();
|
||||
|
||||
// no cascade option on an ElementCollection, the target objects are always persisted, merged, removed with their parent
|
||||
@@ -117,8 +98,7 @@ public class JpaDistributionSet
|
||||
@ElementCollection
|
||||
@CollectionTable(
|
||||
name = "sp_ds_metadata",
|
||||
joinColumns = { @JoinColumn(name = "ds", nullable = false) },
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_ds_metadata_ds"))
|
||||
joinColumns = { @JoinColumn(name = "ds", nullable = false) })
|
||||
@MapKeyColumn(name = "meta_key", length = DistributionSet.METADATA_MAX_KEY_SIZE)
|
||||
@Column(name = "meta_value", length = DistributionSet.METADATA_MAX_VALUE_SIZE)
|
||||
private Map<String, String> metadata = new HashMap<>();
|
||||
|
||||
@@ -14,10 +14,8 @@ import java.util.List;
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.ManyToMany;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.eclipse.hawkbit.repository.event.EventPublisherHolder;
|
||||
@@ -32,11 +30,7 @@ import org.eclipse.hawkbit.repository.model.DistributionSetTag;
|
||||
*/
|
||||
@NoArgsConstructor // Default constructor needed for JPA entities.
|
||||
@Entity
|
||||
@Table(name = "sp_distribution_set_tag",
|
||||
indexes = {
|
||||
@Index(name = "sp_idx_distribution_set_tag_prim", columnList = "tenant,id"),
|
||||
@Index(name = "sp_idx_distribution_set_tag_01", columnList = "tenant,name") },
|
||||
uniqueConstraints = @UniqueConstraint(columnNames = { "name", "tenant" }, name = "uk_distribution_set_tag"))
|
||||
@Table(name = "sp_distribution_set_tag")
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@SuppressWarnings("squid:S2160")
|
||||
public class JpaDistributionSetTag extends JpaTag implements DistributionSetTag, EventAwareEntity {
|
||||
|
||||
@@ -18,10 +18,8 @@ import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.OneToMany;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -39,11 +37,7 @@ import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
||||
*/
|
||||
@NoArgsConstructor // Default constructor needed for JPA entities.
|
||||
@Entity
|
||||
@Table(name = "sp_distribution_set_type", indexes = {
|
||||
@Index(name = "sp_idx_distribution_set_type_01", columnList = "tenant,deleted"),
|
||||
@Index(name = "sp_idx_distribution_set_type_prim", columnList = "tenant,id") }, uniqueConstraints = {
|
||||
@UniqueConstraint(columnNames = { "tenant", "type_key" }, name = "uk_sp_distribution_set_type_type_key"),
|
||||
@UniqueConstraint(columnNames = { "tenant", "name" }, name = "uk_sp_distribution_set_type_name") })
|
||||
@Table(name = "sp_distribution_set_type")
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@SuppressWarnings("squid:S2160")
|
||||
public class JpaDistributionSetType extends AbstractJpaTypeEntity implements DistributionSetType, EventAwareEntity {
|
||||
|
||||
@@ -18,12 +18,10 @@ import java.util.Optional;
|
||||
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Convert;
|
||||
import jakarta.persistence.Converter;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.NamedAttributeNode;
|
||||
@@ -32,7 +30,6 @@ import jakarta.persistence.NamedEntityGraphs;
|
||||
import jakarta.persistence.OneToMany;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.Transient;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
@@ -59,7 +56,7 @@ import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus;
|
||||
*/
|
||||
@NoArgsConstructor // Default constructor needed for JPA entities.
|
||||
@Entity
|
||||
@Table(name = "sp_rollout", uniqueConstraints = @UniqueConstraint(columnNames = { "name", "tenant" }, name = "uk_rollout"))
|
||||
@Table(name = "sp_rollout")
|
||||
@NamedEntityGraphs({ @NamedEntityGraph(name = "Rollout.ds", attributeNodes = { @NamedAttributeNode("distributionSet") }) })
|
||||
// squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
// java:S1710 - not possible to use without group annotation
|
||||
@@ -82,8 +79,7 @@ public class JpaRollout extends AbstractJpaNamedEntity implements Rollout, Event
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY, optional = false)
|
||||
@JoinColumn(
|
||||
name = "distribution_set", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_rollout_distribution_set"))
|
||||
name = "distribution_set", nullable = false, updatable = false)
|
||||
@NotNull
|
||||
private JpaDistributionSet distributionSet;
|
||||
|
||||
|
||||
@@ -15,18 +15,15 @@ import java.util.Map;
|
||||
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Convert;
|
||||
import jakarta.persistence.Converter;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.OneToMany;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.Transient;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
@@ -46,7 +43,7 @@ import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus;
|
||||
*/
|
||||
@NoArgsConstructor // Default constructor needed for JPA entities.
|
||||
@Entity
|
||||
@Table(name = "sp_rollout_group", uniqueConstraints = @UniqueConstraint(columnNames = { "name", "rollout", "tenant" }, name = "uk_rollout_group"))
|
||||
@Table(name = "sp_rollout_group")
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@SuppressWarnings("squid:S2160")
|
||||
public class JpaRolloutGroup extends AbstractJpaNamedEntity implements RolloutGroup, EventAwareEntity {
|
||||
@@ -57,8 +54,7 @@ public class JpaRolloutGroup extends AbstractJpaNamedEntity implements RolloutGr
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(
|
||||
name = "rollout", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_rollout_group_rollout"))
|
||||
name = "rollout", nullable = false, updatable = false)
|
||||
private JpaRollout rollout;
|
||||
|
||||
@Setter
|
||||
|
||||
@@ -20,13 +20,10 @@ import java.util.Optional;
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.CollectionTable;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.ElementCollection;
|
||||
import jakarta.persistence.Embeddable;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToMany;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
@@ -35,7 +32,6 @@ import jakarta.persistence.NamedAttributeNode;
|
||||
import jakarta.persistence.NamedEntityGraph;
|
||||
import jakarta.persistence.OneToMany;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
@@ -63,12 +59,7 @@ import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
||||
@Getter
|
||||
@ToString(callSuper = true)
|
||||
@Entity
|
||||
@Table(name = "sp_software_module",
|
||||
uniqueConstraints = @UniqueConstraint(columnNames = { "sm_type", "name", "version", "tenant" }, name = "uk_software_module"),
|
||||
indexes = {
|
||||
@Index(name = "sp_idx_software_module_01", columnList = "tenant,deleted,name,version"),
|
||||
@Index(name = "sp_idx_software_module_02", columnList = "tenant,deleted,sm_type"),
|
||||
@Index(name = "sp_idx_software_module_prim", columnList = "tenant,id") })
|
||||
@Table(name = "sp_software_module")
|
||||
@NamedEntityGraph(name = "SoftwareModule.artifacts", attributeNodes = { @NamedAttributeNode("artifacts") })
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@SuppressWarnings("squid:S2160")
|
||||
@@ -80,8 +71,7 @@ public class JpaSoftwareModule
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "sm_type", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_software_module_sm_type"))
|
||||
@JoinColumn(name = "sm_type", nullable = false, updatable = false)
|
||||
@NotNull
|
||||
private JpaSoftwareModuleType type;
|
||||
|
||||
@@ -101,8 +91,7 @@ public class JpaSoftwareModule
|
||||
@ElementCollection
|
||||
@CollectionTable(
|
||||
name = "sp_sm_metadata",
|
||||
joinColumns = { @JoinColumn(name = "sm", nullable = false) },
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_sm_metadata_sm"))
|
||||
joinColumns = { @JoinColumn(name = "sm", nullable = false) })
|
||||
@MapKeyColumn(name = "meta_key", length = SoftwareModule.METADATA_KEY_MAX_SIZE)
|
||||
private Map<String, JpaMetadataValue> metadata;
|
||||
|
||||
|
||||
@@ -13,9 +13,7 @@ import java.io.Serial;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.Min;
|
||||
|
||||
import lombok.Getter;
|
||||
@@ -33,11 +31,7 @@ import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
||||
@NoArgsConstructor // Default constructor for JPA
|
||||
@Getter
|
||||
@Entity
|
||||
@Table(name = "sp_software_module_type", indexes = {
|
||||
@Index(name = "sp_idx_software_module_type_01", columnList = "tenant,deleted"),
|
||||
@Index(name = "sp_idx_software_module_type_prim", columnList = "tenant,id") }, uniqueConstraints = {
|
||||
@UniqueConstraint(columnNames = { "tenant", "type_key" }, name = "uk_sp_software_module_type_type_key"),
|
||||
@UniqueConstraint(columnNames = { "tenant", "name" }, name = "uk_sp_software_module_type_name") })
|
||||
@Table(name = "sp_software_module_type")
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@SuppressWarnings("squid:S2160")
|
||||
public class JpaSoftwareModuleType extends AbstractJpaTypeEntity implements SoftwareModuleType, EventAwareEntity {
|
||||
|
||||
@@ -20,14 +20,11 @@ import java.util.Set;
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.CollectionTable;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Convert;
|
||||
import jakarta.persistence.Converter;
|
||||
import jakarta.persistence.ElementCollection;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.JoinTable;
|
||||
import jakarta.persistence.ManyToMany;
|
||||
@@ -39,7 +36,6 @@ import jakarta.persistence.NamedEntityGraphs;
|
||||
import jakarta.persistence.OneToMany;
|
||||
import jakarta.persistence.PrimaryKeyJoinColumn;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import jakarta.validation.constraints.Size;
|
||||
@@ -70,14 +66,7 @@ import org.springframework.util.ObjectUtils;
|
||||
@NoArgsConstructor // Default constructor for JPA
|
||||
@Slf4j
|
||||
@Entity
|
||||
@Table(name = "sp_target",
|
||||
indexes = {
|
||||
@Index(name = "sp_idx_target_01", columnList = "tenant,name,assigned_distribution_set"),
|
||||
@Index(name = "sp_idx_target_03", columnList = "tenant,controller_id,assigned_distribution_set"),
|
||||
@Index(name = "sp_idx_target_04", columnList = "tenant,created_at"),
|
||||
@Index(name = "sp_idx_target_05", columnList = "tenant,last_modified_at"),
|
||||
@Index(name = "sp_idx_target_prim", columnList = "tenant,id") },
|
||||
uniqueConstraints = @UniqueConstraint(columnNames = { "controller_id", "tenant" }, name = "uk_target_controller_id"))
|
||||
@Table(name = "sp_target")
|
||||
@NamedEntityGraphs({
|
||||
@NamedEntityGraph(name = "Target.details", attributeNodes = {
|
||||
@NamedAttributeNode("targetType"),
|
||||
@@ -139,13 +128,13 @@ public class JpaTarget extends AbstractJpaNamedEntity implements Target, EventAw
|
||||
@Setter
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "installed_distribution_set", foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_inst_ds"))
|
||||
@JoinColumn(name = "installed_distribution_set")
|
||||
private JpaDistributionSet installedDistributionSet;
|
||||
|
||||
@Setter
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "assigned_distribution_set", foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_assign_ds"))
|
||||
@JoinColumn(name = "assigned_distribution_set")
|
||||
private JpaDistributionSet assignedDistributionSet;
|
||||
|
||||
@Setter
|
||||
@@ -167,21 +156,15 @@ public class JpaTarget extends AbstractJpaNamedEntity implements Target, EventAw
|
||||
@Setter
|
||||
@Getter
|
||||
@ManyToOne(fetch = FetchType.LAZY, targetEntity = JpaTargetType.class)
|
||||
@JoinColumn(name = "target_type", foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_relation_target_type"))
|
||||
@JoinColumn(name = "target_type")
|
||||
private TargetType targetType;
|
||||
|
||||
@ManyToMany(targetEntity = JpaTargetTag.class)
|
||||
@JoinTable(
|
||||
name = "sp_target_target_tag",
|
||||
joinColumns = {
|
||||
@JoinColumn(
|
||||
name = "target", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_target_tag_target")) },
|
||||
inverseJoinColumns = {
|
||||
@JoinColumn(
|
||||
name = "tag", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_target_tag_tag"))
|
||||
})
|
||||
joinColumns = { @JoinColumn(name = "target", nullable = false) },
|
||||
inverseJoinColumns = { @JoinColumn(name = "tag", nullable = false) }
|
||||
)
|
||||
private Set<TargetTag> tags;
|
||||
|
||||
// no cascade option on an ElementCollection, the target objects are always persisted, merged, removed with their parent
|
||||
@@ -189,8 +172,8 @@ public class JpaTarget extends AbstractJpaNamedEntity implements Target, EventAw
|
||||
@ElementCollection
|
||||
@CollectionTable(
|
||||
name = "sp_target_attributes",
|
||||
joinColumns = { @JoinColumn(name = "target", nullable = false) },
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_attributes_target"))
|
||||
joinColumns = { @JoinColumn(name = "target", nullable = false) }
|
||||
)
|
||||
@MapKeyColumn(name = "attribute_key", length = Target.CONTROLLER_ATTRIBUTE_MAX_KEY_SIZE)
|
||||
@Column(name = "attribute_value", length = Target.CONTROLLER_ATTRIBUTE_MAX_VALUE_SIZE)
|
||||
private Map<String, String> controllerAttributes;
|
||||
@@ -200,8 +183,8 @@ public class JpaTarget extends AbstractJpaNamedEntity implements Target, EventAw
|
||||
@ElementCollection
|
||||
@CollectionTable(
|
||||
name = "sp_target_metadata",
|
||||
joinColumns = { @JoinColumn(name = "target", nullable = false) },
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_metadata_target"))
|
||||
joinColumns = { @JoinColumn(name = "target", nullable = false) }
|
||||
)
|
||||
@MapKeyColumn(name = "meta_key", length = Target.METADATA_MAX_KEY_SIZE)
|
||||
@Column(name = "meta_value", length = Target.METADATA_MAX_VALUE_SIZE)
|
||||
private Map<String, String> metadata;
|
||||
|
||||
@@ -13,15 +13,12 @@ import java.io.Serial;
|
||||
import java.util.Optional;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Convert;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
@@ -44,9 +41,7 @@ import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
||||
@Setter
|
||||
@Getter
|
||||
@Entity
|
||||
@Table(
|
||||
name = "sp_target_filter_query",
|
||||
uniqueConstraints = @UniqueConstraint(columnNames = { "name", "tenant" }, name = "uk_target_filter_query"))
|
||||
@Table(name = "sp_target_filter_query")
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@SuppressWarnings("squid:S2160")
|
||||
public class JpaTargetFilterQuery extends AbstractJpaTenantAwareBaseEntity implements TargetFilterQuery, EventAwareEntity {
|
||||
@@ -65,9 +60,7 @@ public class JpaTargetFilterQuery extends AbstractJpaTenantAwareBaseEntity imple
|
||||
private String query;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, targetEntity = JpaDistributionSet.class)
|
||||
@JoinColumn(
|
||||
name = "auto_assign_distribution_set",
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_filter_query_auto_assign_distribution_set"))
|
||||
@JoinColumn(name = "auto_assign_distribution_set")
|
||||
private DistributionSet autoAssignDistributionSet;
|
||||
|
||||
@Column(name = "auto_assign_action_type")
|
||||
|
||||
@@ -12,9 +12,7 @@ package org.eclipse.hawkbit.repository.jpa.model;
|
||||
import java.io.Serial;
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
@@ -30,12 +28,7 @@ import org.eclipse.hawkbit.repository.model.TargetTag;
|
||||
@NoArgsConstructor // Default constructor for JPA
|
||||
@ToString(callSuper = true)
|
||||
@Entity
|
||||
@Table(
|
||||
name = "sp_target_tag",
|
||||
indexes = {
|
||||
@Index(name = "sp_idx_target_tag_prim", columnList = "tenant,id"),
|
||||
@Index(name = "sp_idx_target_tag_01", columnList = "tenant,name") },
|
||||
uniqueConstraints = @UniqueConstraint(columnNames = { "name", "tenant" }, name = "uk_target_tag"))
|
||||
@Table(name = "sp_target_tag")
|
||||
public class JpaTargetTag extends JpaTag implements TargetTag, EventAwareEntity {
|
||||
|
||||
@Serial
|
||||
|
||||
@@ -14,15 +14,11 @@ import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.JoinTable;
|
||||
import jakarta.persistence.ManyToMany;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
@@ -40,9 +36,7 @@ import org.eclipse.hawkbit.repository.model.TargetType;
|
||||
@NoArgsConstructor // Default constructor for JPA
|
||||
@ToString(callSuper = true)
|
||||
@Entity
|
||||
@Table(name = "sp_target_type", indexes = {
|
||||
@Index(name = "sp_idx_target_type_prim", columnList = "tenant,id") }, uniqueConstraints = {
|
||||
@UniqueConstraint(columnNames = { "name", "tenant" }, name = "uk_target_name") })
|
||||
@Table(name = "sp_target_type")
|
||||
@SuppressWarnings("java:S2160") // the super class equals/hashcode shall be used
|
||||
public class JpaTargetType extends AbstractJpaTypeEntity implements TargetType, EventAwareEntity {
|
||||
|
||||
@@ -52,14 +46,9 @@ public class JpaTargetType extends AbstractJpaTypeEntity implements TargetType,
|
||||
@ManyToMany(targetEntity = JpaDistributionSetType.class)
|
||||
@JoinTable(
|
||||
name = "sp_target_type_ds_type",
|
||||
joinColumns = {
|
||||
@JoinColumn(
|
||||
name = "target_type", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_type_ds_type_target_type")) },
|
||||
inverseJoinColumns = {
|
||||
@JoinColumn(
|
||||
name = "distribution_set_type", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_target_type_ds_type_distribution_set_type")) })
|
||||
joinColumns = { @JoinColumn(name = "target_type", nullable = false) },
|
||||
inverseJoinColumns = { @JoinColumn(name = "distribution_set_type", nullable = false) }
|
||||
)
|
||||
private Set<DistributionSetType> distributionSetTypes = new HashSet<>();
|
||||
|
||||
public JpaTargetType(final String key, final String name, final String description, final String colour) {
|
||||
|
||||
@@ -15,7 +15,6 @@ import jakarta.persistence.Basic;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
@@ -35,9 +34,7 @@ import org.eclipse.hawkbit.repository.model.TenantConfiguration;
|
||||
@Setter
|
||||
@Getter
|
||||
@Entity
|
||||
@Table(
|
||||
name = "sp_tenant_configuration",
|
||||
uniqueConstraints = @UniqueConstraint(columnNames = { "conf_key", "tenant" }, name = "uk_tenant_configuration"))
|
||||
@Table(name = "sp_tenant_configuration")
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@SuppressWarnings("squid:S2160")
|
||||
public class JpaTenantConfiguration extends AbstractJpaTenantAwareBaseEntity implements TenantConfiguration, EventAwareEntity {
|
||||
|
||||
@@ -12,18 +12,14 @@ package org.eclipse.hawkbit.repository.jpa.model;
|
||||
import java.io.Serial;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Index;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.NamedAttributeNode;
|
||||
import jakarta.persistence.NamedEntityGraph;
|
||||
import jakarta.persistence.OneToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.persistence.UniqueConstraint;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
@@ -44,10 +40,7 @@ import org.eclipse.hawkbit.repository.model.TenantMetaData;
|
||||
@NoArgsConstructor // Default constructor for JPA
|
||||
@Setter
|
||||
@Getter
|
||||
@Table(
|
||||
name = "sp_tenant",
|
||||
indexes = { @Index(name = "sp_idx_tenant_prim", columnList = "tenant,id") },
|
||||
uniqueConstraints = { @UniqueConstraint(columnNames = { "tenant" }, name = "uk_tenant") })
|
||||
@Table(name = "sp_tenant")
|
||||
@NamedEntityGraph(name = "TenantMetaData.withDetails", attributeNodes = { @NamedAttributeNode("defaultDsType") })
|
||||
@Entity
|
||||
// exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities
|
||||
@@ -63,9 +56,7 @@ public class JpaTenantMetaData extends AbstractJpaBaseEntity implements TenantMe
|
||||
private String tenant;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(
|
||||
name = "default_ds_type", nullable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_sp_tenant_default_ds_type"))
|
||||
@JoinColumn(name = "default_ds_type", nullable = false)
|
||||
private JpaDistributionSetType defaultDsType;
|
||||
|
||||
public JpaTenantMetaData(final DistributionSetType defaultDsType, final String tenant) {
|
||||
|
||||
@@ -14,10 +14,8 @@ import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.ConstraintMode;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.ForeignKey;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.IdClass;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
@@ -44,14 +42,12 @@ public class RolloutTargetGroup implements Serializable {
|
||||
|
||||
@Id
|
||||
@ManyToOne(optional = false, targetEntity = JpaRolloutGroup.class, fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST })
|
||||
@JoinColumn(name = "rollout_group", nullable = false, updatable = false, foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_rollout_target_group_rollout_group"))
|
||||
@JoinColumn(name = "rollout_group", nullable = false, updatable = false)
|
||||
private JpaRolloutGroup rolloutGroup;
|
||||
|
||||
@Id
|
||||
@ManyToOne(optional = false, targetEntity = JpaTarget.class, fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST })
|
||||
@JoinColumn(
|
||||
name = "target", nullable = false, updatable = false,
|
||||
foreignKey = @ForeignKey(value = ConstraintMode.CONSTRAINT, name = "fk_rollout_target_group_target"))
|
||||
@JoinColumn(name = "target", nullable = false, updatable = false)
|
||||
private JpaTarget target;
|
||||
|
||||
@OneToMany(targetEntity = JpaAction.class, fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST })
|
||||
|
||||
Reference in New Issue
Block a user