Я определил 2 единицы постоянства, каждый из которых указывает на конкретную c схему.
В настоящее время я могу сохранять данные в обеих схемах, используя 2 диспетчера сущностей, каждая из которых использует разные единицы персистентности. .
Это сущность, используемая для обоих единиц постоянства:
@Entity
@NamedQuery(name = "Cliente.findAll", query = "SELECT c FROM Cliente c")
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "CLIENTE_CLICODIGO_GENERATOR", sequenceName = "CLIENTE_CLI_CODIGO_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CLIENTE_CLICODIGO_GENERATOR")
@Column(name = "cli_codigo")
private Integer cliCodigo;
// bi-directional many-to-one association to Emisor
@ManyToOne
@JoinColumn(name = "emi_codigo")
private Emisor emisor;
...
Каждая схема имеет одинаковые таблицы, однако теперь структурные схемы изменились, и теперь первая схема имеет отношения и последовательности и вторая схема не имеет его.
Структура таблицы в первой схеме выглядит следующим образом:
CREATE TABLE public.cliente (
cli_codigo serial NOT NULL,
emi_codigo int4 NULL,
CONSTRAINT cliente_pkey PRIMARY KEY (cli_codigo),
CONSTRAINT fk_emisor FOREIGN KEY (emi_codigo) REFERENCES emisor(emi_codigo)
)
Структура таблицы во второй схеме выглядит следующим образом:
CREATE TABLE public.cliente (
cli_codigo int4 NOT NULL,
emi_codigo int4 NULL)
Когда я пытаюсь сохранить данные, вторая схема выдает ошибки.
Одна из них связана с несуществующей последовательностью, а вторая связана с несуществующими отношениями с таблицей
Q1) Можно игнорировать последовательности во втором диспетчере сущностей и использовать последовательность, сгенерированную первым диспетчером сущностей, чтобы сохранить этот код во второй схеме?
Q2) Возможно ли игнорировать отношения со вторым постоянным подразделением или руководителем организации?