-2

Я не знаю, почему отношения не были созданы в моей базе данных. У меня 7 связей в таблице, в которой 5 отношений работают нормально, но 2 (materialServico, unidadeMedida) не будут отображаться в базе данных (смотря на ССЫЛКИ КОНСТРУИРОВАНИЯ), и ничего не появляется в журнале. Кто-нибудь испытал это? Я использую eclipselink 2.5.1 с весной 3.2.1.RELEASE и SqlServer 2012 (также тестируется в postgresql). Обычно я использую Hibernate в качестве ORM ...EclipseLink - Не создавать отношения

@JoinColumns({ 
    @JoinColumn(name = "COD_EMPRESA", referencedColumnName = "COD_EMPRESA", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_FILIAL", referencedColumnName = "COD_FILIAL", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_CONTA_CONTABIL", referencedColumnName = "COD_CONTA_CONTABIL", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "DATA_CONTA_CONTABIL", referencedColumnName = "DATA_CONTA_CONTABIL", nullable = true, insertable=false, updatable=false)}) 
@ManyToOne(optional = false) 
private Conta conta = new Conta(); 

@JoinColumns({ 
    @JoinColumn(name = "COD_EMPRESA", referencedColumnName = "COD_EMPRESA", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_FILIAL", referencedColumnName = "COD_FILIAL", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_UNIDADE_MEDIDA", referencedColumnName = "COD_UNIDADE_MEDIDA", nullable = true, insertable=false, updatable=false)}) 
@ManyToOne(optional = false) 
private UnidadeMedida unidadeMedida = new UnidadeMedida(); 

@JoinColumns({ 
    @JoinColumn(name = "COD_EMPRESA", referencedColumnName = "COD_EMPRESA", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_FILIAL", referencedColumnName = "COD_FILIAL", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_NAT_OPERACAO", referencedColumnName = "COD_NAT_OPERACAO", nullable = true, insertable=false, updatable=false)}) 
@ManyToOne(optional = false) 
private NaturezaOperacao naturezaOperacao = new NaturezaOperacao(); 

@JoinColumns({ 
    @JoinColumn(name = "COD_EMPRESA", referencedColumnName = "COD_EMPRESA", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_FILIAL", referencedColumnName = "COD_FILIAL", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "CHAVE_NFE", referencedColumnName = "CHAVE_NFE", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "DATA_REF", referencedColumnName = "DATA_REF", nullable = true, insertable=false, updatable=false)}) 
@ManyToOne(optional = false) 
private MestreNotaFiscal mestreNotaFiscal = new MestreNotaFiscal(); 

@JoinColumns({ 
    @JoinColumn(name = "COD_EMPRESA", referencedColumnName = "COD_EMPRESA", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_FILIAL", referencedColumnName = "COD_FILIAL", nullable = true, insertable=false, updatable=false), 
    @JoinColumn(name = "COD_ITEM", referencedColumnName = "COD_ITEM", nullable = true, insertable=false, updatable=false)}) 
@ManyToOne(optional = true) 
private MaterialServico materialServico; 

Sql журналов: Он создает FK для mestreNotaFiscal, сыновний, Конт, naturezaOperacao, SA. Не показывать больше FK из этой таблицы в журнале.

ALTER TABLE SYS033_ITENS_NFS ADD CONSTRAINT SYS033ITENSNFSDATA_REF FOREIGN KEY (DATA_REF, CHAVE_NFE, COD_FILIAL, COD_EMPRESA) REFERENCES SYS032_MESTRE_NFS (DATA_REF, CHAVE_NFE, COD_FILIAL, COD_EMPRESA) 
ALTER TABLE SYS033_ITENS_NFS ADD CONSTRAINT SYS033ITENSNFSCDFILIAL FOREIGN KEY (COD_FILIAL, COD_EMPRESA) REFERENCES SYS001_FILIAIS (COD_FILIAL, COD_EMPRESA) 
ALTER TABLE SYS033_ITENS_NFS ADD CONSTRAINT SYS033TNSNFSCDCNTCNTBL FOREIGN KEY (COD_CONTA_CONTABIL, COD_FILIAL, DATA_CONTA_CONTABIL, COD_EMPRESA) REFERENCES SYS005_ (COD_CONTA_CONTABIL, COD_FILIAL, DATA_CONTA_CONTABIL, COD_EMPRESA) 
ALTER TABLE SYS033_ITENS_NFS ADD CONSTRAINT SYS033TNSNFSCDNTPRACAO FOREIGN KEY (COD_NAT_OPERACAO, COD_FILIAL, COD_EMPRESA) REFERENCES SYS031_NATUREZA_OPERACOES (COD_NAT_OPERACAO, COD_FILIAL, COD_EMPRESA) 
ALTER TABLE SYS033_ITENS_NFS ADD CONSTRAINT SYS033ITENSNFSCDMPRESA FOREIGN KEY (COD_EMPRESA) REFERENCES SYS000_EMPRESA (COD_EMPRESA) 
+0

почему отрицается ???? –

+0

Вы не указали другую информацию, кроме многих очень сложных сопоставлений. Что именно вы ожидаете, и что именно происходит? Вы также можете упростить свою модель и удалить некоторые отношения, чтобы увидеть, что на самом деле связано с проблемой. Создание простого тестового примера обычно помогает людям понять, что может быть неправильным. – Chris

+0

Что именно вы ожидаете? \t Создайте FK для материала таблицыServico и таблицы unidadeMedida. что именно происходит? \t Создает поле для FK, но не создает FK CONSTRAINT (ссылки) для этих 2 таблиц. \t Я попытаюсь перейти в спящий режим и посмотреть, не является ли это проблемой затмения. –

ответ

0

Я изменил реализацию от eclipselink до hibernate (4.2.1.Final), и это сработало! Я не знаю, почему эта проблема и не знаю, как использовать eclipselink в этой ситуации.

 Смежные вопросы

  • Нет связанных вопросов^_^