Java 日食-不建立关系

Java 日食-不建立关系,java,eclipselink,relationship,foreign-key-relationship,jpa-2.1,Java,Eclipselink,Relationship,Foreign Key Relationship,Jpa 2.1,我不知道为什么我的数据库中没有创建关系。我在一个表中有7个关系,其中5个关系可以正常工作,但2materialServico、unidadeMedida不会出现在数据库中查看约束引用,日志中也不会出现任何内容。有人经历过这个吗?我正在使用eclipselink 2.5.1和spring 3.2.1.RELEASE,并在postgresql中测试SqlServer 2012。通常我使用Hibernate作为ORM @JoinColumns({ @JoinColumn(name = "COD

我不知道为什么我的数据库中没有创建关系。我在一个表中有7个关系,其中5个关系可以正常工作,但2materialServico、unidadeMedida不会出现在数据库中查看约束引用,日志中也不会出现任何内容。有人经历过这个吗?我正在使用eclipselink 2.5.1和spring 3.2.1.RELEASE,并在postgresql中测试SqlServer 2012。通常我使用Hibernate作为ORM

@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日志:它为MestrenotaFinancial、孝顺、康塔、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)

我将实现从eclipselink更改为hibernate4.2.1.Final,它成功了!我不知道为什么会有这个问题,也不知道在这种情况下如何使用eclipselink。

为什么会被否定???除了许多非常复杂的映射之外,您没有提供任何信息。你到底期望发生什么,以及究竟发生了什么?您还可以简化您的模型并删除一些关系,以查看哪些关系实际上与问题相关-创建一个简单的测试用例通常可以帮助人们找出可能出现的错误。您到底希望发生什么?为table MaterialService和table unidadeMedida创建FK。到底发生了什么?正在为FK创建字段,但未为此2个表创建FK约束引用。我将尝试切换到hibernate,看看这是否是eclipselink问题。您能显示正在发布的SQL吗?请参阅以打开日志记录,因为可能正在发出约束,但出现了一个被忽略的问题。不要在日志中显示任何问题。创建此表时不使用MaterialService和unidadeMedida的外键。好像不在那里。。。