У меня есть 2 таблицы с OneToMany правами и созданные объекты, как показано ниже
Таблица 1- Сеть имеет первичный ключ в качестве идентификатора сети
Таблица 2- NetworkAttributes имеет FK в качестве networkId, но записи следует рассматривать как уникальные, объединяя " networkId " и " name " column [ имя столбца в таблице атрибутов отсутствует в таблице сети ], и здесь я сохраняю значение по умолчанию для нескольких сетевых параметров, и параметры могут повторяться в разных сетях в соответствии с приведенной ниже структурой таблицы в " NetworkAttributes »
Структура таблицы: -
Таблица сети :
networkID | networkName | networkType
H123M nrouter X
N123Y testR J
Таблица сетевых атрибутов : [тип хранения ключей для значений по умолчанию]
networkID | name | value
H123M maxIpUser 10
H123M maxRouterUser 15
N123Y maxIpUser 23
N123Y maxRouterUser 25
Сетевой объект: -
@Entity
@Table(name = "NETWORK")
public class Network implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "customer_id", nullable = false)
private Customer customer;
@Id
@NotNull
@Column (name = "NETWORKID")
private String networkId;
@Column (name = "networkName")
private String networkName;
@Column (name = "networkType")
private String networkType;
@Column (name = "onlyActive")
private boolean onlyActive;
@OneToMany (fetch = FetchType.LAZY, mappedBy = "network")
private List<NetworkAttributes> networkAttributes;
// Setter / Getter
Сетевой атрибут объекта: -
@Entity
@Table (name = "NETWORK_ATTRIBUTES")
public class NetworkAttributes implements Serializable {
private static final long serialVersionUID = 1L;
@Column (name = "name")
private String name;
@Column (name = "value")
private String value;
@ManyToOne (fetch = FetchType.LAZY)
@JoinColumn (name = "network_Id")
private Network network;
// setter / getter
Проблема:
С этой структурой таблицы я не могу вставить разные параметры для одних и тех же сетей в таблицу Network Attributes . дает уникальную ошибку ограничения. Любое предложение, пожалуйста
Например, вы можете видеть, что я пытаюсь вставить записи ниже, но поскольку networkId как FK, он не позволяет вставлять 2-ю и 4-ю записи.
H123M maxIpUser 10
H123M maxRouterUser 15
N123Y maxIpUser 23
N123Y maxRouterUser 25