Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何翻转子句';在';自联接多对多的内部联接_Java_Sql_Hibernate_Jpa - Fatal编程技术网

Java 如何翻转子句';在';自联接多对多的内部联接

Java 如何翻转子句';在';自联接多对多的内部联接,java,sql,hibernate,jpa,Java,Sql,Hibernate,Jpa,我有一个与她有关的实体 @OrderBy("ordenacao ASC") @JoinTable(name = "funcionarios_has_funcionarios", joinColumns = @JoinColumn(name = "FUNCIONARIOS_ID"), inverseJoinColumns = @JoinColumn(name = "FUNCIONARIOS_ID1")) @ManyToMany(cascade = { PERSIST, MERGE }) publi

我有一个与她有关的实体

@OrderBy("ordenacao ASC")
@JoinTable(name = "funcionarios_has_funcionarios", joinColumns = @JoinColumn(name = "FUNCIONARIOS_ID"), inverseJoinColumns = @JoinColumn(name = "FUNCIONARIOS_ID1"))
@ManyToMany(cascade = { PERSIST, MERGE })
public List<Funcionarios> getFuncionariosId1s() {
    return funcionariosId1s;
}
她以那种方式在java中表演

`select
        funcionari1_.ID as col_0_0_,
        funcionari1_.NOME as col_1_0_,
        coalesce(sum(fornecimen0_.LITROS*fornecimen0_.VALOR),
        0) as col_2_0_,
        (select
            coalesce(sum(vales4_.VALOR),
            0) 
        from
            vales vales4_,
            funcionarios funcionari5_ 
        where
            vales4_.FUNCIONARIOS_ID=funcionari5_.ID 
            and vales4_.FUNCIONARIOS_ID=funcionari1_.ID 
            and vales4_.STATUS='PENDENTE') as col_3_0_,
        (select
            coalesce(sum(convenio6_.VALOR),
            0) 
        from
            convenio convenio6_,
            funcionarios funcionari7_ 
        where
            convenio6_.FUNCIONARIOS_ID=funcionari7_.ID 
            and convenio6_.FUNCIONARIOS_ID=funcionari1_.ID 
            and convenio6_.STATUSCONVENIADO='PENDENTE') as col_4_0_ 
    from
        fornecimentoleiteprodutor fornecimen0_ 
    inner join
        funcionarios funcionari1_ 
            on fornecimen0_.PRODUTOR_ID=funcionari1_.ID 
    inner join
        funcionarios_has_funcionarios funcionari2_ 
            on funcionari1_.ID=funcionari2_.FUNCIONARIOS_ID 
    inner join
        funcionarios funcionari3_ 
            on funcionari2_.FUNCIONARIOS_ID1=funcionari3_.ID 
    where
        funcionari3_.ID=2 
    group by
        funcionari1_.ID`
但是我需要第二个内部连接上的子句是不同的,这样

inner join
        funcionarios_has_funcionarios funcionari2_ 
            on funcionari1_.ID=funcionari2_.FUNCIONARIOS_ID1
我需要“on”与连接表的第二列相关联
如果要控制内部联接,请给出自己的ON子句,如何解决此问题


目前Hibernate正在根据自己的假设生成自己的ON子句。

任何JPA实现都会根据注释/XML定义的列(以及应该连接的列)添加ON子句。您无法摆脱它(除了以不同的方式定义关系字段)。您唯一能做的就是使用JPQL添加额外的ON子句。我只想更改“ON”中比较的“id”
inner join
        funcionarios_has_funcionarios funcionari2_ 
            on funcionari1_.ID=funcionari2_.FUNCIONARIOS_ID1