-2

왜 내 관계가 데이터베이스에 만들어지지 않았는지 알 수 없습니다. 나는 5 개의 릴레이션이 잘 작동하는 테이블에 7 개의 관계가 있지만 2 (materialServico, unidadeMedida)는 데이터베이스에 나타나지 않으며 (CONSTRAINT REFERENCES 참조) 로그에 아무것도 표시되지 않습니다. 누구든지이 경험이 있습니까? Spring 3.2.1.RELEASE 및 SqlServer 2012 (또한 postgresql에서 테스트 됨)와 함께 eclipselink 2.5.1을 사용하고 있습니다. 일반적으로 나는 ... 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 로그를 최대 절전 모드를 사용 : 그것은 mestreNotaFiscal, 효, 접점, naturezaOperacao, Empresa 연락처에 대한 FK를 생성합니다. 이 테이블의 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 테이블 재질 Servico 및 테이블 unidadeMedida에 대해 FK를 만듭니다. 정확히 무슨 일이 발생하고 있습니까? \t FK에 대한 필드를 생성 중이지만이 2 개의 테이블에 대한 FK CONSTRAINT (참조)는 생성하지 않습니다. \t 최대 절전 모드로 변경하여 eclipselink 문제인지 확인하려고합니다. –

답변

0

구현을 eclipselink에서 최대 절전 모드 (4.2.1.Final)로 변경했습니다. 왜이 문제가 있으며이 상황에서 eclipselink를 사용하는 방법을 모르는지 나는 모른다.