-2
我不知道为什么关系未在我的数据库中创建。我有一个表格中有7个关系,其中5个关系正常工作,但2(materialServico,unidadeMedida)不会出现在数据库中(查看CONSTRAINT REFERENCES)并且日志中没有任何内容出现。任何人都经历过这个?我在Spring 3.2.1.RELEASE和SqlServer 2012中使用eclipselink 2.5.1(也在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,孝顺,CONTA,naturezaOperacao,Empresa与我们。不要在日志中显示更多的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)
为什么被否定 ????? –
除了许多非常复杂的映射,你没有提供任何信息。你到底想要发生什么,以及究竟发生了什么?您也可以简化模型并删除一些关系以查看哪些与问题实际相关 - 创建一个简单的测试用例通常可帮助人们找出可能出错的地方。 – Chris
你到底想要发生什么? \t为表格材料Servico和table unidadeMedida创建FK。 究竟发生了什么呢? \t正在为FK创建字段,但不为这两个表创建FK CONSTRAINT(引用)。 \t 我会尝试改为休眠,看看它是否是eclipselink问题。 –